Реагировать на собственный TabNavigator this.props.navigation.state.params не определен
Я делаю приложение для Android с использованием реагировать родной. Я пытаюсь передать параметры через TabNavigator, но this.props.navigation.state.params не определено. В настоящее время я использую:
"react-native": "0.51.0",
"react-navigation": "^1.0.0-beta.22"
Пример кода (пытался сохранить только соответствующий):
это мой index.js:
const RootNavigator = TabNavigator({
Home: { screen: App },
Design: { screen: ImageDesign }
}
это домашний экран:
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = { ... }
}
static navigationOptions = {
tabBarVisible: false
};
render() {
const { navigate } = this.props.navigation;
return (
<View style={styles.container}>
<Button title="design image"
onPress={ () => navigate('Design',{name: 'Jane'}) }/>
</View>
);
}
}
это дизайн экрана:
export default class ImageDesign extends React.Component {
constructor(props) {
super(props);
this.state = { ... }
}
static navigationOptions = {
tabBarVisible: false
};
render() {
const { params } = this.props.navigation.state;
return (
<View>
<Text>{ params.name }</Text>
</View>
);
}
}
но, к сожалению, params не определен, поэтому ошибка 'undefined не является объектом'
Я также попробовал:
<Button title="design image"
onPress={ () => navigate('Design', {}, {type: "Navigate", routName:"ImageDesign", params: {name: 'Jane'}}) }/>
но я не уверен, что так работает
Заранее спасибо!
1 ответ
Просто попробуй this.props.name
, Params/ реквизиты должны быть отправлены в качестве реквизита. Вам не нужно обращаться к такому состоянию навигации.