2017-01-01 130 views
1

反应本地路由流量重新渲染组件如何重新运行React组件生命周期方法以确定在使用React Native Router Flux从堆栈过渡回堆栈前面的屏幕时是否需要重新渲染?

情景:场景A - >乙 - > 比方说,A是初始场景,我们从A导航与推即Actions.SceneB到B点。从B到A用Pop。当弹出堆栈显示Scene-A时,没有任何React Component方法被调用用于Scene-A。我如何确定是否需要重新渲染?我搜索了github回购中列出的问题,许多人似乎没有解决方案就遇到了这个问题。这个问题是如何解决的?
在堆栈弹出

我有一个丑陋的工作,用setTimeout调用Actions.refresh()。


Work Around that works! 这种解决方法似乎很难。必须有更好的方法挂钩组件生命周期以确定是否需要重新渲染。也许回调到组件?

<TouchableHighlight underlayColor='#efefef' onPress={() => { Actions.pop(); setTimeout(()=> Actions.refresh(), 500)}} style={styles.cancel}> 

选项不工作

Actions.pop({type: 'reset'}) 

      OR 

Actions.refresh({"key" : "sceneA"}) 

回答

1

解决的作品!这种解决方法似乎很难。必须有更好的方法挂钩组件生命周期以确定是否需要重新渲染。

<TouchableHighlight underlayColor='#efefef' onPress={() => { Actions.pop(); setTimeout(()=> Actions.refresh(), 500)}} style={styles.cancel}> 

这将调用shouldComponentUpdate()方法,给出了一个选项,以确定,是否需要重新绘制。