首页 > 解决方案 > 如何在 React-Navigation 上传递道具,以便导航组件可以在这些道具更改时重新渲染

问题描述

我试图以这种方式从组件 A 导航到 B 传递道具(作为选项):

this.props.navigation.navigate("B",{
            retrievePlayingNow:this.props.retrievePlayingNow, // props come from component C
            skipSong: this.skipsong, // this is a function

          });
    }

所以当我调用一个函数'skipSong'时,它会更改组件C(它是A的父组件)上的道具A更改但组件B上的道具保持不变并且它不会重新渲染以显示新信息. 有没有其他方法可以使用 React-Navigation 做到这一点?

标签: react-nativereact-navigationreact-props

解决方案


这就是 astate management libraries发挥作用的地方。

好吧,我使用redux。在这里,您可以将数据存储在任何组件都可以访问的全局存储中。

所以把变量从组件retrievePlayingNow放到redux store ,然后组件访问。因此,当(或任何人)更改该变量的值时,所有使用访问该变量(包括)的组件都将重新渲染。CBCB

使用 any 的另一个优点state management library是您不需要像之前那样创建组件层次结构来传递道具C -> A -> B。您所能做的就是将变量分派到 store 中C并通过以下方式直接访问它B


推荐阅读