【发布时间】:2021-08-28 14:18:45
【问题描述】:
在我的行动中,我删除数据如下
const deleteEmailFooter = (emailID) => async (dispatch) => {
try {
console.log('email id', emailID);
const response = await api.delete(`/signatures/${emailID}`);
return dispatch({
type: "DELETE_EMAIL_FOOTER",
payload: emailID,
});
} catch (error) {
throw dispatch({
type: "DELETE_EMAIL_FAILED",
payload: error.data,
});
}
};
这是我的减速器
const initialState = {
emailFooters: [],
};
const videoFooterReducer = (state = initialState, action) => {
switch (action.type) {
case "GET_EMAIL_FOOTER":
return action.payload ;
case "DELETE_EMAIL_FOOTER":
return state.emailFooters.filter((x) => x.id !== action.payload);
default:
return state;
}
};
我正在像这样的组件之一中显示这些数据
......
const signatures = useSelector((state) => state.videoFooterReducer.emailFooters);
.......
console.log("signatures...", signatures); // before deleting there is data , but after
deleting its shows in a console undefined
useEffect(() => {
getEmailSignatures();
}, []);
const getEmailSignatures = async (signatures) => {
try {
dispatch(actions.videoFooterActions.getEmailFooter());
} catch (error) {}
};
return(
<div>
{signatures.map((signature) => (
<SignatureListTemplate signature={signature} key={signature.id} />
))}
</div>
);
为什么它为空,而仍然存在未删除的数据?错误:TypeError: Cannot read property 'map' of undefined
【问题讨论】:
标签: arrays reactjs redux react-redux react-hooks