Отправьте навигационное действие - PullRequest
0 голосов
/ 16 марта 2020

Вот мои коды

import { NavigationActions } from "react-navigation"
import { call, put, delay } from "redux-saga/effects"
import { AsyncStorage, Alert } from "react-native"
export function* handleResponse(response) {
    switch (response.status) {
        case 200: {
            console.log('logged by phuognn aaa');
            Alert.alert("404400404040400")
            yield call(NavigationActions.navigate, { routeName: "Auth" })
            return true;
        }
        case 201: {
            console.log('logged by phuognn bbb');
            return false;
        }
    }
}

Строка журнала и оповещение запущены, я хочу перейти к маршруту "Auth", но не работает. Есть ли проблемы с моим кодом?

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

NavigationActions.navigate является функцией создателя действия, а не вызовом API или подобным. Чтобы отправлять действия из саги, вы должны использовать put вместо call.

import { NavigationActions } from "react-navigation"
import { call, put, delay } from "redux-saga/effects"
import { AsyncStorage, Alert } from "react-native"
export function* handleResponse(response) {
    switch (response.status) {
        case 200: {
            console.log('logged by phuognn aaa');
            Alert.alert("404400404040400");
            yield put(NavigationActions.navigate({ routeName: "Auth" }));
            return true;
        }
        case 201: {
            console.log('logged by phuognn bbb');
            return false;
        }
    }
}

Попробуйте использовать этот код. Я не слишком знаком с redux-saga. Я предпочитаю redux-observable, поэтому дайте мне знать, если это работает.

0 голосов
/ 16 марта 2020

Ошибка

yield call(NavigationActions.navigate, { routeName: "Auth" })

заменить на

this.props.navigation.navigate("Auth");

вот ссылки для понимания

( Перемещение между экранами ) https://reactnavigation.org/docs/navigating

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...