异步操作的另一种方案就是让Action Creator返回一个Promise对象。
我们这边使用 redux-promise 中间件
import { createStore, applyMiddle } from 'redux';
import promiseMiddleware from 'redux-promise';
import reducer from './reducers';
const store = createStore(
reducer,
applyMiddleware( promiseMiddleware )
)
这个中间件使得 store.dispatch 方法可以接受Promise 对象作为参数。这是Action Creator 有两种写法
写法一,返回值是一个Promise对象。
const fetchPosts =
(dispatch, postTitle) => new Promise((resolve, reject)=>{
dispatch(requestPosts(postTitle));
return fetch(`/some/API/${postTitle}.json`)
.then(response => {
type: 'FETCH_POSTS',
payload: response.json()
});
});
。。。。。。。。。。第二种方法还在研究当中