【发布时间】:2023-03-14 15:48:01
【问题描述】:
我似乎无法使用navigation.navigate 将数据传递到选定的屏幕。它适用于其他任何地方,但在标题中
// Router.js
const ResultStack = StackNavigator({
Result: {
screen: Result,
navigationOptions: ({ navigation }) => ({
headerTintColor: "#FFF",
headerLeft: (<Button onPress={() => navigation.goBack(null)} />),
headerRight: (<Button onPress={() => navigation.navigate('Lab', { someKey: SomeValue }) } />),
}),
...
}
})
理想情况下,我想将navigation.state.params 上的视图状态传递到下一个屏幕,因此它应该看起来像headerRight: ( navigation.navigate('Lab', navigation.state.params} />),但它不起作用。
这可能吗?还是我必须为此使用 Redux(这似乎有点矫枉过正)。
编辑
在尝试将数据传递到另一个堆栈时,此方法似乎不起作用。
我正在使用 Spencer Carl 的设置 - Getting Started React Navigation
在此示例设置中,如何将数据从 ResultStack 传递到 LabStack
export const ResultStack = StackNavigator({
Result: {
screen: Result,
navigationOptions: ({ navigation }) => ({
headerTintColor: "#FFF",
headerLeft: (<Button onPress={() => navigation.goBack(null)} />),
headerRight: (<Button onPress={() => navigation.navigate('Lab', { someKey: SomeValue }) } />),
}),
...
}
})
export const LabStack = StackNavigator({
Lab: { ... }
...
})
export const TabStack = TabNavigator({
ResultStack: { ... }
LabStack: { ... }
})
export const Root = StackNavigator({
...
Main: {
screen: TabStack,
navigationOptions: {
header: null,
}
},
});
【问题讨论】:
-
在尝试解决这个问题数周后,我最终求助于使用 redux。
标签: react-native parameters router react-navigation