我需要在解决时从redux中的promise中调度一个动作。 我尝试使用以下代码(注释掉)但没有成功。
你能指出我正确的方向吗?
我得到的错误是:
ReferenceError:未定义dispatch
const getLocations = (query:string):ActionType => {
const value = query.trim()
if (!value.length) {
return ({
type: null,
payload: null
})
}
return ({
type: types.GET_LOCATIONS,
payload: new Promise((resolve, reject) => {
fetch(api.find(query)).then(response => {
resolve(response.json())
// dispatch(myAction())
})
})
})
}
答案 0 :(得分:-1)
您需要使用中间件来捕获承诺,尝试使用redux
https://www.npmjs.com/package/redux-promise
//index.js
import { createStore, applyMiddleware } from 'redux';
import reduxPromise from 'reduxPromise';
const store = createStore(reducers, applyMiddleware(reduxPromise)));
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>
, rootEl );
然后在你的行动中返回承诺
return ({
type: GET_LOCATIONS,
payload: fetch(api.find(query))
})
你可以谷歌搜索其余的,我写的很快。我对我的减速器中的响应做了我的反应