im试图以这种方式(作为选项)从组件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上的道具却保持不变,并且不会重新渲染以显示新信息。我还能使用React-Navigation做到这一点吗?
答案 0 :(得分:0)
这是state management libraries
生效的地方。
好吧,我使用redux。在这里,您可以将数据存储在全局存储中,任何组件都可以访问。
因此,将变量retrievePlayingNow
从C
组件放入redux存储,并由B
组件访问它。因此,当C
(或任何人)更改该变量的值时,所有访问该变量的组件(包括B
)都将重新呈现。
使用任何state management library
的另一个好处是,您不需要像完成C -> A -> B
那样就通过传递组件的层次结构来传递道具。您所能做的就是将变量从C
分派到存储中,并通过B
答案 1 :(得分:0)
您可以使用DeviceEventEmitter添加侦听器事件以重新渲染,而无需使用redux。