【发布时间】:2017-05-17 03:58:31
【问题描述】:
我正在尝试从 web api 调用加载数据,为此我添加了两个操作,一个用于调用 webapi 方法,另一个用于加载数据。我的行为是这样的:-
export function LoadLabResult (labresult) {
return (dispatch) => {
dispatch({
type: 'RECEIVE_LABRESULT',
});
fetch('http://localhost:8090/api/Requisition/GetRequisitionTestInfo', {mode: 'no-cors'})
.then(response =>dispatch({
type: 'REQUEST_LABRESULT',
labresult:response.data
}));
}
};
export function receiveLabResult(labresult) {
console.log(labresult);
return {
type:'REQUEST_LABRESULT',
labresult:labresult
};
}
现在的问题是它没有调用 receiveLabResult 方法。我该怎么做?如何将数据传递给 labresult?
【问题讨论】:
-
据我了解,您想在 api 调用之前调度操作
'RECEIVE_LABRESULT',然后在 api 调用完成后,调度操作'REQUEST_LABRESULT'。对吗? -
@swapnil 在调用 api 调用后我想触发 REQUEST_LABRESULT 但它没有使用正确的数据触发,我通过调试数据检查了是否以 json 的形式出现。如何将数据传递给其他操作和火?
-
我认为您使用的术语不正确。您创建的方法是动作创建者而不是动作。动作创建者触发动作。在您的情况下,我认为不需要在 loadLabResult 中调用 receiveLabResult 操作创建者。关于 api 调用数据,您是否尝试在各自的 reducer 中安慰 action.labresult ?
标签: reactjs ecmascript-6 react-redux es6-promise