Reactjs 用承诺来回应redux问题,因为我的变量为null
我有一个React Redux应用程序,我对promise有问题。首先,我想给你我的代码: 问题是我的dateApi第二次只是“令人惊讶”。我需要做出承诺,但我不知道怎么做 问题:这是我在react前端的方法:Reactjs 用承诺来回应redux问题,因为我的变量为null,reactjs,redux,Reactjs,Redux,我有一个React Redux应用程序,我对promise有问题。首先,我想给你我的代码: 问题是我的dateApi第二次只是“令人惊讶”。我需要做出承诺,但我不知道怎么做 问题:这是我在react前端的方法: ... this.props.handleLastWeek(this.props.dateFrom, this.props.dateTo); // ^^ this returns dataApi ^^ var i = 1; var j = 1;
...
this.props.handleLastWeek(this.props.dateFrom, this.props.dateTo);
// ^^ this returns dataApi ^^
var i = 1;
var j = 1;
var k = 1;
var l = 0;
var dateArray = [];
this.props.dataApi.map(dA => {
... // this.props.dataApi is null
减速器:
case GET_DATA_LAST_WEEK:
return state.set("dataApi", []).set("isLoading", true);
case GET_DATA_LAST_WEEK_SUCCESS:
return state.set("isLoading", false).set("dataApi", action.response);
这是我的操作:(响应是我的dataApi)
这是我的redux saga函数:
export function* handleLastWeek() {
const from = yield select(makeSelectDateFrom());
const to = yield select(makeSelectDateTo());
const requestURL = `/api/daydate`;
try {
const response = yield call(request, requestURL, {
method: "POST",
headers: {
Authorization: `Bearer ${getToken()}`,
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
from,
to
})
});
if (response) {
yield put(successDataLastWeekAction(response));
} else {
yield put(errorDataLastWeekAction("Spróbuj ponownie za moment."));
}
} catch (err) {
yield put(errorDataLastWeekAction(err));
}
}
其中是
this.props.dataApi.map(dA=>{…//this.props.dataApi为null
调用?从render()?@TyroHunter,在componentDidMount()中调用,但不限于此。我在onClick函数等中使用它。您能否像下面这样记录响应以确保您的api真正响应预期数据:console.log(响应);if(响应){yield put(successDataLastWeekAction(response));}else{yield put(errorDataLastWeekAction(“Spróbuj ponownie za moment”);}
如果您看到记录的数据,则问题可能与promise无关,而与您的redux有关connections@Tyro,是的。API始终返回真实数据,此问题在promise 100%确定中,然后尝试console.log(this.props.dataApi)
这次在render方法上,应该至少调用两次,并比较两个日志,您是否看到第二个日志(第二次调用render)中的预期数据?其中是this.props.dataApi.map(dA=>{…//this.props.dataApi为null
调用?来自render()?@TyroHunter,在componentDidMount()中)但不仅如此。我在onClick函数等中使用它。您是否可以像下面这样记录响应,以确保您的api真正响应预期数据:console.log(响应);if(响应){yield put(successDataLastWeekAction(响应));}else{yield put(errorDataLastWeekAction(“Spróbuj ponownie za矩”);}
如果您看到记录的数据,则问题可能与promise无关,而与您的redux有关connections@Tyro,是的。API始终返回真实数据,此问题在promise 100%确定中,然后尝试console.log(this.props.dataApi)
这次在render方法上,应该至少调用两次,并比较两个日志,您是否看到来自第二个日志(第二次调用render)的预期数据?
export function* handleLastWeek() {
const from = yield select(makeSelectDateFrom());
const to = yield select(makeSelectDateTo());
const requestURL = `/api/daydate`;
try {
const response = yield call(request, requestURL, {
method: "POST",
headers: {
Authorization: `Bearer ${getToken()}`,
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
from,
to
})
});
if (response) {
yield put(successDataLastWeekAction(response));
} else {
yield put(errorDataLastWeekAction("Spróbuj ponownie za moment."));
}
} catch (err) {
yield put(errorDataLastWeekAction(err));
}
}