React Native Навигация между двумя экранами load back - PullRequest
0 голосов
/ 10 января 2020

В React Native я перемещаюсь с экрана на другой экран. Я загружаю заказы на обоих экранах по методу componentWillMount. При переходе ко второму экрану первый отключается, а второй автоматически отключается и возвращается к первому экрану. Я не знаю почему ..

Navigatort.tsx

const MenuDrawerNavigator = createDrawerNavigator(
    {
        Orders: {
            screen: DriverOrdersScreenContainer,
        },
        CurrentRoute: {
            screen: CurrentRouteScreenContainer,
        },
    },
    {
        initialRouteName: 'CurrentRoute',
        contentComponent: SideMenuContainer,
        unmountInactiveRoutes: true,
    }
);

export const AppStack = createStackNavigator({
        Login: {
            screen: LoginScreenContainer,
            navigationOptions: {
                header: null
            }
        },
        DrawerNavigator: {
            screen: MenuDrawerNavigator,
        }
    },
    {
        initialRouteName: 'Login',
        defaultNavigationOptions: ({navigation}) => ({
            title: "Main",
            header: <MenuBarContainer navigation={navigation} />,
        })
    }
);


const Navigator = createAppContainer(AppStack);

export default Navigator;

Я перемещаюсь между экранами, используя этот метод:

navigateToScreen = (route: string) => () => {
        const {navigation} = this.props;
        const navigateAction = NavigationActions.navigate({
            routeName: route
        });

        navigation.dispatch(navigateAction);
        navigation.dispatch(DrawerActions.closeDrawer());
    };

Первый экран методы - когда я перехожу на второй экран, я получаю предупреждение (2)

componentWillMount(): void {
        const {getRoute} = this.props;
        getRoute();
        this.timer = setInterval(async () => await getRoute(), 60000);
    }

    componentWillUnmount() {
        alert(2);
        clearInterval(this.timer);
    }

Второй экран методы - после перехода на этот экран я также получаю предупреждение ( 1) и автоматически я перехожу к первому экрану ..

    componentWillMount(): void {
        const {getOrders} = this.props;
        getOrders();
        this.timer = setInterval(async () => await getOrders(), 60000);
    }

    componentWillUnmount() {
        alert(1);
        clearInterval(this.timer);
    }
...