假设我在Profile3
。我想重置为Stack1
(底部导航器的初始路径)。那怎么可能?我只能重设为Stack3
。但不是Stack1
。
如果我尝试将Stack3
替换为Stack1
或Bottom1
,则会出现错误消息。看来stackreset必须来自同一堆栈导航器?
错误:没有为键Stack1定义路由。必须是以下之一Stack3,Profile3
重置代码
import { NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Stack3' })],
});
this.props.navigation.dispatch(resetAction);
导航代码:
const Stack1 = createStackNavigator(
{
Stack1: Home1,
Profile1: Profile
}
);
const Stack2 = createStackNavigator(
{
Stack2: Home2,
Profile2: Profile
}
);
const Stack3 = createStackNavigator(
{
Stack3: Home3,
Profile3: Profile
}
);
const AppNavigator = createBottomTabNavigator({
Bottom1: Stack1,
Bottom2: Stack2,
Bottom3: Stack3
}, {
{
initialRouteName: 'Bottom1',
});
export default createAppContainer(AppNavigator);
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Stack1 ' })],
});
this.pr
ops.navigation.dispatch(resetAction);
如果要重置1,然后将Stack3
替换为Stack1
,则在分派时它将从索引0加载该堆栈
编辑:
由于我们需要将主堆栈重置为我们需要使用NavigationActions
而不是StackActions
来执行重置,所以>
让我知道是否可行
尝试从任何要重置堆栈的位置尝试用stack1替换重置中的stack3: