我正在使用materialTopTabs,似乎这会在安装后加载导航器中的所有屏幕。我有一个屏幕列表,其中有一个带有 2 个屏幕的选项卡导航器:Posts和Users。这两个屏幕都取决于从List传递的参数。但是,我只能使用此方法将参数传递到屏幕之一:
navigation.navigate('PostsTabNav', {
params: {
network: item,
},
screen: 'NetworkPosts' //or NetworkUsers
});
Run Code Online (Sandbox Code Playgroud)
我试图通过这样做直接将参数传递给我的导航器:
navigation.navigate('PostsTabNav', {
network: item
});
Run Code Online (Sandbox Code Playgroud)
第一个选项只允许我传递到一个屏幕。第二个选项允许我像这样访问导航器中的参数:
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>
);
};
Run Code Online (Sandbox Code Playgroud)
有没有办法传递temp到我的两个屏幕?如果没有,有没有更好的方法来处理这种情况?
这是代码 StackNavigator
const NetworkListStackNav = createStackNavigator();
export const NetworksListNavigator = () => {
return ( …Run Code Online (Sandbox Code Playgroud) reactjs react-native react-navigation react-navigation-bottom-tab react-navigation-v5