将变量从Stack传递到BottomTab导航器

时间:2019-12-22 09:14:09

标签: reactjs react-native react-navigation asyncstorage

当前行为

当我从主屏幕(堆栈导航器)导航到页面之一时,它将传递变量。但是,当我从BottomTop导航器单击其他页面时,它不会传递变量。

预期行为

从BottomTap导航器中选择变量时,将变量从页面传递到另一个

代码

从HomeScreen(堆栈)

<TouchableOpacity
onPress={()=> this.props.navigation.navigate("Screen1", {loggedInUser: loggedInUser, Role: Role})}>
</TouchableOpacity>

**我正在从登录页面获取loginInUser和角色

在Screen1(bottomTab)

const { navigation } = this.props;  
const loggedInUser = navigation.getParam('loggedInUser');  
const Role = navigation.getParam('Role');  

它会在从首页到屏幕1的第一次导航中获取这些变量(loggedInUser和Role),但是当我从屏幕1导航到屏幕2(通过BottomTab导航器)​​时,它不会传递变量。

我阅读了有关AsyncStorage,密钥和dragonallyGetParent的内容,但我不诚实地知道如何在我的代码中利用它们。

环境

|软件|版本

|反应导航| 4.0.10

|反应本机| 0.60.5

|节点| v10.16.0

| npm或纱| 6.12.0

1 个答案:

答案 0 :(得分:0)

根据React Navigation,将参数传递给路由仅适用于堆栈导航器。因此,您不能对标签导航器应用相同的方案。

最好使用Redux保存数据。