reducer redux-thunk 不调用 reducer
reducer is not invoked by reducer redux-thunk
下面的代码调度 create_event 然后调用 addFlashMessage 操作
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
addFlashMessage("Event has been created");
};
};
addFlashMessage 在操作中被调用
但是 ADD_FLASH_MESSAGE 没有被调用
export const addFlashMessage = message => {
console.log("action is invoked");
return dispatch => {
dispatch({
type: "ADD_FLASH_MESSAGE",
payload: {
message
}
});
};
};
这永远不会被调用
case "ADD_FLASH_MESSAGE":
console.log("action called");
您需要 dispatch
action
来调用 addFlashMessage
,如下所示。
dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});
您的代码应如下所示。
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});
};
};
您需要 dispatch
才能触发 redux-thunk
函数,而不仅仅是从 createEvent
调用另一个函数。
这是更正后的。
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
dispatch(addFlashMessage("Event has been created"));
};
};
下面的代码调度 create_event 然后调用 addFlashMessage 操作
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
addFlashMessage("Event has been created");
};
};
addFlashMessage 在操作中被调用
但是 ADD_FLASH_MESSAGE 没有被调用
export const addFlashMessage = message => {
console.log("action is invoked");
return dispatch => {
dispatch({
type: "ADD_FLASH_MESSAGE",
payload: {
message
}
});
};
};
这永远不会被调用
case "ADD_FLASH_MESSAGE":
console.log("action called");
您需要 dispatch
action
来调用 addFlashMessage
,如下所示。
dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});
您的代码应如下所示。
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});
};
};
您需要 dispatch
才能触发 redux-thunk
函数,而不仅仅是从 createEvent
调用另一个函数。
这是更正后的。
export const createEvent = event => {
return dispatch => {
dispatch({
type: "CREATE_EVENT",
payload: {
event
}
});
dispatch(addFlashMessage("Event has been created"));
};
};