react-native - 如何在 native react 中将 Prop 从 TabNavigator 传递到 StackNavigator?

标签 react-native react-navigation

TabNavigator 中有 2 个 StackNavigator 对象,其中屏幕很少。如何从 App.js -> TabNavigator -> 每个 StackNavigator -> 屏幕传递 props?

下面的代码会生成错误,表示只能渲染一个路由器。

const SettingsStack = createStackNavigator({
  Settings: {screen: props => <SettingsScreen {...props} screenProps={{is_authenticated: props.is_authenticated}}/> },
  Profile: {screen: ProfileScreen},
});

const MainTabNavigator = createBottomTabNavigator({
    SettingsStack: {screen: props => <SettingsStack {...props} screenProps={{is_authenticated: props.is_authenticated}}/>},
})

最佳答案

您必须以某种方式提供一种将属性传递到导航器对象中的方法。也许你的函数可以像这样工作:

function createNav (props) {
  // Do something
  return createStackNavigator({
    Settings: {screen: <SettingsScreen {...props})
  })
}

在您的示例中,您将屏幕作为将 Prop 传递给组件的函数。但它如何知道从哪里获取这些 Prop 呢?

基本 Prop 的另一个非常简单的选择是传递 property with navigation 。在这种情况下,您基本上在导航期间调用 navigate('screen', {property: 'value'}) ,然后使用

const val = navigation.getParam('property', 'defaultValue') // 'value'

将其显示在您正在导航到的屏幕中。

关于react-native - 如何在 native react 中将 Prop 从 TabNavigator 传递到 StackNavigator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918738/

相关文章:

react-native - 当我在 React Native 中导航到新页面时,如何强制卸载组件?

reactjs - React Native 禁用 TabNavigator 中滑动 StackNavigator

android - React Navigation - 在 Blurview 中包装标题和选项卡导航器会丢失 Prop

react-native - react native从另一个页面返回时会调用哪个生命周期方法?

reactjs - 如何动态设置 react 导航 TabNavigator 中的初始选项卡

javascript - 使用 React Navigation,如何强制抽屉导航器弹出到堆栈顶部?

react-native - react native 导航类型错误 : undefined is not an object (evaluating 'Object.keys(routeConfigs)' )

android - react native -当我使用react-native-ble-manager调用扫描功能时,应用程序崩溃

mysql - 将react-native连接到firebase和mysql

react-native - ItemSeparatorComponent - 每行回调