【发布时间】:2022-01-21 06:11:49
【问题描述】:
我一直在尝试使用 navigation.navigate('Merchant', store) 将数据从 home.js 屏幕传递到 Merchant.js 屏幕,但是当我尝试实际使用 route.params 时,我得到了未定义。
这是我的 home.js
export default function Home( { navigation }) {
...
{storeData.map(store => {
return (
<View>
<TouchableOpacity>
<Text style={styles.categoryName}
onPress={() => {navigation.navigate('Merchant', store)}}>
{store.name}
</Text>
</TouchableOpacity>
Merchant.js
function Merchant({ navigation, route }) {
console.log(route);
...
}
输出:
{"key": "Merchant-86K9u5ytF32VGMRcO9s2g", "name": "Merchant", "params": undefined}
再次,我不知道发生了什么。我试过navigation.push(),我试过使用navigation('Merchant', {name: store.name}),但我仍然没有定义。
如果您想使用我的堆栈导航粘贴更多代码,我可以。
【问题讨论】:
-
只是为了澄清:这不是关于 React Navigation,而不是 React Native Navigation?
-
reactnavigation.org/docs/params 说“通过将参数作为第二个参数放入对象中,将参数传递给路由”。您是否尝试在花括号 => {store} 而不是 store 之间传递 store?
-
可能你的
store没有定义,你能用console.log 确认一下吗? -
@ElsonRamos 我也这么认为,但我最近在snack 上尝试过,它似乎有效
-
是的,我尝试过使用花括号,是的,商店不是未定义的。
标签: javascript reactjs react-native react-navigation