如何重新运行 React 组件生命周期方法来确定在从堆栈转换回以前的屏幕时是否需要重新渲染React Native 路由器 Flux?
设想:场景 A -> B -> A
假设 A 是初始场景,我们使用 a 从 A 导航到 B推即 Actions.SceneB。从 B 到 APop。当弹出堆栈以显示场景 A 时,不会为场景 A 调用任何 React 组件方法。如何确定是否需要重新渲染?我搜索了 github 存储库上列出的问题,很多人似乎都遇到了这个问题,但没有解决方案。这个问题如何解决?
我有一个丑陋的解决方案,即使用 setTimeout 调用 Actions.refresh() 。
解决这个问题!这个解决方法似乎很hacky。必须有一种更好的方法来挂钩组件生命周期以确定是否需要重新渲染。也许回调到组件中?
<TouchableHighlight underlayColor='#efefef' onPress={() => { Actions.pop(); setTimeout(()=> Actions.refresh(), 500)}} style={styles.cancel}>
不起作用的选项
Actions.pop({type: 'reset'})
OR
Actions.refresh({"key" : "sceneA"})
解决这个问题!这个解决方法似乎很hacky。必须有一种更好的方法来挂钩组件生命周期以确定是否需要重新渲染。
<TouchableHighlight underlayColor='#efefef' onPress={() => { Actions.pop(); setTimeout(()=> Actions.refresh(), 500)}} style={styles.cancel}>
这将调用shouldComponentUpdate()
方法提供了一个选项来确定是否需要重新渲染。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)