清除堆栈导航到React-Navigation

时间:2018-01-10 20:01:54

标签: react-native react-navigation

我的react-native应用程序包含一个包含多个StackNavigators的DrawerNavigator。我的结构的简化示例如下所示

- Drawer
  - Stack 1
    - Screen 1
    - Screen 2
  - Stack 2
    - Screen 1
    - Screen 2

我的问题如下: 我在Stack 1的屏幕1上。我使用Drawer导航到Stack 2的屏幕1。从Stack 2的屏幕1开始,我只需按一下按钮即可导航到Stack 2的屏幕2。然后我使用抽屉导航回堆栈1。我再次使用抽屉返回堆栈2。我现在在Stack 2的屏幕1上,但是标题中有一个后退按钮,看来我的当前屏幕刚刚放在旧堆栈的顶部。按下它会导航到Stack 2的屏幕2,再次按下它会导航到Stack 2的屏幕1。

当导航回到抽屉中的堆栈时,我希望它能够使用新堆栈将我返回到堆栈中的第一个项目 - 也就是说,没有后退按钮。

预计会出现这种情况吗?如果是这样,我能做些什么来清除'从抽屉导航到它时的堆栈?

这是一个世博会示例,只有极少数代码才能重现我的结构和问题:https://snack.expo.io/rk2HV-HNf

1 个答案:

答案 0 :(得分:0)

在反应导航中,如果您想要返回,而不是创建新屏幕,则需要使用from keras import backend as K K.clear_session() model = Sequential() model.add(Dense(dim, input_dim=dim, activation='relu')) model.add(Dense(200, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(loss='mse', optimizer='Adam', metrics=['mae']) logger = keras.callbacks.TensorBoard(log_dir='/tf_logs', write_graph=True, histogram_freq=1) history = model.fit(X, Y, epochs=12, batch_size=100, validation_split=0.2, shuffle=True, verbose=2, callbacks=[logger]) 。如果您使用this.props.navigation.goBack()方法,则会创建一个新屏幕,因此返回按钮。

然而,还有另一种方式。在您的情况下,您不需要这个,但是您也可以使用navigate从头开始定义堆栈并将其分派给重置导航堆栈。