javascript - React Native 将参数传递给 Navigator
问题描述
我有一个选项卡导航器,我想知道是否可以将参数传递给选项卡导航器并在 HomePage 组件中使用该参数。
我正在使用从抽屉导航器传递参数this.props.navigation.navigate('TabsNav', {testParam: 'TEST'})
。
是否可以像这样将参数传递给导航器?
TabNav.js
export const Tabs = createMaterialTopTabNavigator(
{
HomePage: {
screen: Home,
navigationOptions: {
tabBarLabel:"Home Page",
},
},
ListView: {
screen: List,
navigationOptions: {
tabBarLabel:"List View",
}
},
},
{
order: ['HomePage', 'ListView'],
},
)
DrawerContainer.js
render() {
return (
<View style={styles.container}>
<View>
<TouchableHighlight
style={styles.TouchableHighlight}
onPress={this.props.navigation.navigate('TabsNav', {testParam: 'TEST'})}
<Text>Home</Text>
</TouchableHighlight>
</View>
<View>
<TouchableHighlight
style={styles.TouchableHighlight}
onPress={this.props.navigation.navigate('ProfilePage')}>
<Text>List View</Text>
</TouchableHighlight>
</View>
</View>
)
}
解决方案
您需要导航到选项卡内的特定屏幕,而不是选项卡本身,或者参数进入选项卡导航器。params 仅转到您直接导航到的路线。
所以
Drawer({
TabsNav: Tab({
HomePage: ScreenA,
ListView: ScreenB,
})
});
导航到 HomePage 或 ListView 而不是 TabsNav
推荐阅读
- android - 平台通道数据铸造颤振
- swift - 在 /Users/Shared/ 创建目录 - 使用 Swift
- wordpress - WooCommerce 订单状态未正确分配 PayPal 付款
- c# - MEF .NET Core 如何导出 CompositionHost?
- python - pandas.DataFrame.replace() 得到“OverflowError: Python int too large to convert to C long”
- c# - C# 类 - 过于通用导致不必要的开销?
- sql - 如何对三个不相关的表中的值求和
- wcf - 自托管 WCF 服务上的 CORS
- apache-nifi - 具有多个输入的 Apache Nifi EvaluateJsonPath
- java - Json元素到java集合中