React Native 路由未从导航参数更新状态

vx6bjr1n  于 2023-05-01  发布在  React
关注(0)|答案(3)|浏览(152)

所以我有这个屏幕,显示产品的详细信息,它像一个模板,因为只有数据来导航参数的变化,我有这个问题,因为没有重新加载,它工作正常时,回去,并再次安装它,这不是这里的情况,因为我有相关的产品显示在同一屏幕上,我需要一种方法,能够要么重新加载当前路线或更新状态
我检查了控制台。第二次单击时,日志中没有显示任何内容

constructor (props) {
  super(props)
  this.state = {
    product: this.props.route.params.product,
    id: this.props.route.params.product.id,
  }
}

导航到我在屏幕本身或另一条路线上使用的路线

viewProduct = (product) => {
  this.props.navigation.navigate('SingleProduct', { product: product })
}

我在componentDidMountUNSAFE_componentWillReceiveProps中尝试了setState,但结果只在再次单击后显示

daupos2t

daupos2t1#

您可以使用以下功能从singleProduction屏幕导航到具有不同参数的同一屏幕。

this.props.navigation.replace('SingleProduct', { product: product })
8hhllhi2

8hhllhi22#

直接使用route.params?.product,并在useEffect数组中提及更改。

useEffect(() => {

    return () => {
      // Clean up the subscription
      
    };
  // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [route.params?.product]);
ffscu2ro

ffscu2ro3#

navigation.setParams({
   query: 'someText',
});

摘自React导航文档

相关问题