如何在React-Navigation上传递道具,以便在更改这些道具时可以重新渲染导航的组件

时间:2018-10-22 17:13:11

标签: react-native react-navigation react-props

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做到这一点吗?

2 个答案:

答案 0 :(得分:0)

这是state management libraries生效的地方。

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

因此,将变量retrievePlayingNowC组件放入redux存储,并由B组件访问它。因此,当C(或任何人)更改该变量的值时,所有访问该变量的组件(包括B)都将重新呈现。

使用任何state management library的另一个好处是,您不需要像完成C -> A -> B那样就通过传递组件的层次结构来传递道具。您所能做的就是将变量从C分派到存储中,并通过B

直接访问它

答案 1 :(得分:0)

您可以使用DeviceEventEmitter添加侦听器事件以重新渲染,而无需使用redux。