首页 > 解决方案 > 参数更改时反应导航不会刷新页面

问题描述

我正在使用反应导航在页面之间导航。我有 2 页。我们称它们为 A 和 B。我在 A 页面上有一些卡片,并且卡片上有可触摸的不透明度以导航到具有不同 ID 的页面 B(使用此 ID 从服务器获取数据)。

<TouchableOpacity style={styles.button} onPress={() => this.props.navigation.navigate('pageB',{id:this.props.id})} >
   <Text>PageB</Text>
</TouchableOpacity>

它在第一次导航时效果很好。但是,当我导航回页面 A(通过使用侧边菜单)并选择另一个导航按钮来导航页面 B(不同的参数)时,它会将我导航到第一次导航的同一页面。

我曾尝试使用这样的导航键,但我想我可以这样做;

this.props.navigation.navigate('pageB',{id:this.props.id}, this.props.id)}

标签: react-nativereact-navigation

解决方案


您必须像这样设置新参数:

    static navigationOptions = ({ navigation }) => {
    let value = navigation.getParam("value");
    return {
        title: name,
        headerRight: () => (<Button title="Edit" onPress={() => navigation.navigate("Edit", { val: value})} />),
    };

并始终在某处设置新参数,如下所示:

let value = this.state.value;
this.props.navigation.setParams({value});

推荐阅读