如何将JSON从materialTopTabNavigator传递到其他屏幕组件反应本机?

时间:2020-07-05 18:35:03

标签: reactjs react-native react-redux react-navigation

我有一个JSON,它从一个组件传递到另一个组件,并且组件屏幕上有不同的选项卡,如何将JSON从MyTabs主组件传递到其他组件屏幕。这里的id变量由JSON数据组成,我该如何将其传递给首页和设置组件。

const tab = createMaterialTopTabNavigator();
const Mytabs = (props) =>{
const id = props.route.params;
return(

 <tab.Navigator   initialRouteName="home" >
  <tab.Screen  name="home" component={HomeScreen}   />
  <tab.Screen name="Settings" component={SettingsScreen}  />
 </tab.Navigator>
  
 );
 }

1 个答案:

答案 0 :(得分:1)

反应式导航屏幕上有一个initialParams道具,可用于传递id

从文档中:

您还可以将一些初始参数传递给屏幕。如果导航到此屏幕时未指定任何参数,则将使用初始参数。它们也与您传递的所有参数进行了浅层合并。可以使用initialParams属性指定初始参数。

...
<tab.Screen
  name="home"
  component={HomeScreen}
  initialParams={{ id: id }}
/>
<tab.Screen
  name="Settings"
  component={SettingsScreen}
  initialParams={{ id: id }}
/>
...

要检索组件中的初始参数,请执行以下操作:

function HomeScreen({route}) {
   const {id} = route.params
   ... // Do something with the id
}

阅读https://reactnavigation.org/docs/params/,了解将参数传递给路线的所有方式。