StackNavigator
的最大问题是不会卸载组件,即不会调用componentWillUnmount()
。
但我需要这个组件阶段解除绑定事件,或做其他事情。这就是我开始使用DrawerNavigator
的原因。
但这带来了StackNavigator
自动解决的另一个问题。
我有一个从服务器加载数据的组件。在这个组件中,我只显示了夏季,每当用户点击它时,另一个组件似乎显示详细信息。这意味着有两个组件(屏幕)。因此,用户导航到详细信息屏幕(AppNavigator.router.getStateForAction(NavigationActions.navigate({routeName: action.route}), currentState);
)然后他/她按下(硬件)后退按钮,当我覆盖此事件的默认行为(关闭应用程序)时,他/她将导航到列表屏幕。现在,问题是,他/她是第15个数据,现在当他/她从详细屏幕导航时,滚动条在第一个数据中!如果我使用StackNavigator
,滚动条就会出现在第15个数据中。
我使用ScrollView
和FlatList
实现了这一点。使用onMomentumScrollEnd
道具从服务器获取更多数据。
那么,我该如何解决这个问题,滚动条应该放在上次的位置,同时获得componetWillUnmount
的功能?