异步操作的另一种方案就是让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() }); });
。。。。。。。。。。第二种方法还在研究当中