React Navigation 传递导航道具
React Navigation pass navigation prop
根据反应导航文档,当您 select 来自堆栈导航器的屏幕时,导航道具将被传递。
例如,如果我注册了两条路线:
主屏幕
详情
export default class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<Button
onPress={() => this.props.navigation.navigate('Details')}>
<Text>Press me</Text>
</Button>
</View>
);
}
}
够简单!但是让我们假设我有另一个组件被调用:
export default class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<MyOtherComponent />
</View>
);
}
}
我想要这样:
<Button
onPress={() => this.props.navigation.navigate('Details')}>
<Text>Press me</Text>
</Button>
要加入 ,我该怎么做?
我会将 HomeScreen 中的道具传递给 MyOtherComponent 吗?
我实际上在文档中找到了答案。对于没有像我一样浏览所有文档的其他人,这可能会有所帮助。
我可以用withNavigation
在 MyOtherComponent 的示例中,我可以执行以下操作:
从 'react-navigation' 导入 { withNavigation };
class MyOtherComponent extends React.Component {
render stuff here
}
导出默认 withNavigation(MyBackButton);
根据反应导航文档,当您 select 来自堆栈导航器的屏幕时,导航道具将被传递。
例如,如果我注册了两条路线: 主屏幕 详情
export default class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<Button
onPress={() => this.props.navigation.navigate('Details')}>
<Text>Press me</Text>
</Button>
</View>
);
}
}
够简单!但是让我们假设我有另一个组件被调用:
export default class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<MyOtherComponent />
</View>
);
}
}
我想要这样:
<Button
onPress={() => this.props.navigation.navigate('Details')}>
<Text>Press me</Text>
</Button>
要加入 ,我该怎么做? 我会将 HomeScreen 中的道具传递给 MyOtherComponent 吗?
我实际上在文档中找到了答案。对于没有像我一样浏览所有文档的其他人,这可能会有所帮助。
我可以用withNavigation
在 MyOtherComponent 的示例中,我可以执行以下操作:
从 'react-navigation' 导入 { withNavigation };
class MyOtherComponent extends React.Component {
render stuff here
}
导出默认 withNavigation(MyBackButton);