这是我的代码
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“,但不工作。我的代码有什么问题吗?
发布于 2020-03-16 06:28:49
错误
yield call(NavigationActions.navigate, { routeName: "Auth" })替换为
this.props.navigation.navigate("Auth");以下是理解的链接
发布于 2020-03-16 14:03:03
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,所以让我知道这是否有效。
https://stackoverflow.com/questions/60700102
复制相似问题