我有一个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>
);
}
答案 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/,了解将参数传递给路线的所有方式。