gpt4 book ai didi

reactjs - setParams 在 react native 中不起作用

转载 作者:行者123 更新时间:2023-12-03 13:32:19 26 4
gpt4 key购买 nike

我正在使用react-native和redux。我正在尝试更新当前屏幕的参数,以便可以在顶部栏中使用的组件中访问它们,但参数未设置。我的代码如下:

屏幕路由:

AlertNameForm: {
screen: AlertNameForm,
navigationOptions: ({navigation}) => CancelAndDone(navigation)
}

组件屏幕:在 componentDidMount 中我正在设置参数。

class AlertNameForm {
..........
componentDidMount() {
this.props.navigation.setParams({onDonePress: this.onDonePress})
}

onDonePress: () => {
// want to access this function in top-bar buttons.
}
}

以下是进一步的组件:

export const CancelAndDone = (navigation) => ({
headerLeft: <ButtonCancel navigation={navigation} />,
headerRight: <ButtonDone navigation={navigation} />
})

const ButtonDone = withTheme(({navigation, theme: { tertiaryColor } }) => (
<Button color={tertiaryColor} title="Done" onPress={() => {
if (navigation.state.params && navigation.state.params.onDonePress) {
navigation.state.params.onDonePress()
}
else {
navigation.dispatch(NavigationActions.back())
}
}} />
))

但是在 ButtonDone 组件中我无法访问函数 onDonePress有没有其他方法可以在react-native中为当前屏幕设置参数。

最佳答案

您应该使用 this.props 引用 navigation.state.params,因为导航应作为 prop 传递给该组件。

关于reactjs - setParams 在 react native 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com