2017-01-01 117 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()方法,給出了一個選項,以確定,是否需要重新繪製。