react-native - 如何在 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 做到这一点?
解决方案
这就是 astate management libraries
发挥作用的地方。
好吧,我使用redux。在这里,您可以将数据存储在任何组件都可以访问的全局存储中。
所以把变量从组件retrievePlayingNow
放到redux store ,然后组件访问。因此,当(或任何人)更改该变量的值时,所有使用访问该变量(包括)的组件都将重新渲染。C
B
C
B
使用 any 的另一个优点state management library
是您不需要像之前那样创建组件层次结构来传递道具C -> A -> B
。您所能做的就是将变量分派到 store 中C
并通过以下方式直接访问它B