我正在使用materialTopTabs
它,一旦安装,它似乎会加载导航器中的所有屏幕。我有一个屏幕列表,里面有一个带有 2 个屏幕的选项卡导航器:Posts和Users。这两个屏幕都依赖于从List传递的参数。但是,我只能使用此方法将参数传递到其中一个屏幕:
navigation.navigate('PostsTabNav', {
params: {
network: item,
},
screen: 'NetworkPosts' //or NetworkUsers
});
我试图通过这样做直接将参数传递给我的导航器:
navigation.navigate('PostsTabNav', {
network: item
});
第一个选项只允许我通过一个屏幕。第二个选项允许我访问导航器中的参数,如下所示:
const PostsTabNav = createMaterialTopTabNavigator();
const PostsMainNav = (props) => {
const temp = props.route.params.network; //params here
return (
<PostsTabNav.Navigator>
<PostsTabNav.Screen name="NetworkPosts" component={NetworkPostsScreen} />
<PostsTabNav.Screen name="NetworkUsers" component={NetworkUsersScreen} />
</PostsTabNav.Navigator>
);
};
有没有办法传递temp
到我的两个屏幕?如果没有,有没有更好的方法来处理这种情况?
这是代码StackNavigator
const NetworkListStackNav = createStackNavigator();
export const NetworksListNavigator = () => {
return (
<NetworkListStackNav.Navigator>
<NetworkListStackNav.Screen name="List" component={ListScreen} />
<NetworkListStackNav.Screen name="PostsTabNav" component={PostsMainNav} />
</NetworkListStackNav.Navigator>
);
};