我使用redux来更改自定义NavBar
组件的样式。我的NavBar
不是路由器的一部分,我在直接场景JSX中介绍它们。来自我的场景组件的示例JSX:
<View style={{ flex: 1 }}>
<NavigationBar /> <--- My custom NavBar
{ this.renderScreen() }
<Tabulator
tabs={TABS}
style={styles.navbar}
listenTo='screen'
/>
</View>
在第二个场景中,我有一个ScrollView
,当我滚动视图时,它会调度动作。例如,我在向下滚动时调度NavBar
的不透明度,并在某个y
值后更改其标题。问题是,当我滚动视图并且在它停止之前我从第二个场景返回到第一个场景时,ScrollView
还没有停止滚动,因此它会调度更多动作。
有没有办法禁用场景?
我注意到在场景变换动画期间场景处于活动状态时会调用此方法,直到componentWillUnmount()
被调用。
我尝试将减速器放入路由器并调度正在进行场景切换的动作。我检查操作类型是否不是REACT_NATIVE_ROUTER_FLUX_FOCUS
,然后更改正在进行中。所以虽然这是真的,但忽略了更改NavBar
的操作,但是在它卸载之前设置为false。