【发布时间】:2021-03-15 10:28:44
【问题描述】:
我正在尝试触发这个 redux 操作,但每当我检查减速器有效负载的值时,由于某种原因它总是“未定义”。这只会让我认为动作没有触发,我不明白为什么。这是我的行动:
export const getAllSubmittedRequests = (people: PersonalData[]) => (dispatch: any) => {
let count = 0;
people?.forEach((person) => {
if (person.isEntered === true) {
count++;
}
});
dispatch(getAllSubmittedRequestsSuccess(count === people?.length ? true : false));
};
getAllSubmittedRequestsSuccess:
export const getAllSubmittedRequestsSuccess = (enteredRequests: boolean) => ({ type: GET_ENTERED_REQUESTS, enteredRequests});
这是减速器的部分,非常简单:
case GET_ENTERED_REQUESTS:
return { ...state, enteredRequests: action.enteredRequests};
我在组件中的 useEffect 挂钩中调用我的操作,如下所示:
useEffect(() => {
getAllSubmittedRequests(props.data.people);
}, [props.data.people]);
谁能告诉我我在使用 getAllSubmittedRequests 时做错了什么以及为什么 dispatch 部分没有在操作函数内触发?
【问题讨论】:
标签: reactjs typescript redux