【发布时间】:2019-05-09 15:53:09
【问题描述】:
我正在尝试测试 redux-thunk 以进行异步调用,我创建了 3 个操作(请求、成功、失败)并创建了一个 thunk 方法来相应地返回分派的操作。
import { createReducer, createActions } from "reduxsauce";
import Immutable from "seamless-immutable";
import api from "../Services/FixtureApi";
export const INITIAL_STATE = Immutable({
Data1: [],
loadingData: false,
error: null
});
const { Types, Creators } = createActions({
requestData1: null,
receiveData1: null,
failedData1: null
});
export const ExampleTypes = Types;
export default Creators;
export function getData() {
return dispatch => {
dispatch(requestData1());
var promise = new Promise((resolve, reject) => {
const param1 = "";
setTimeout(() => {
resolve(api.getData(param1));
}, 2000);
});
return promise
.then(res => {
dispatch(receiveData1(res.data));
})
.catch(err => {
dispatch(failedData1(err.message));
});
};
}
export const requestData1 = state => ({
...state,
loadingData: true
});
export const receiveData1 = (state, action) => ({
...state,
Data1: [...state.Data1, ...action.payload],
loadingData: false
});
export const failedData1 = (state, action) => ({
...state,
loadingData: false,
error: action.payload
});
export const reducer = createReducer(INITIAL_STATE, {
[Types.REQUEST_DATA1]: requestData1,
[Types.RECEIVE_DATA1]: receiveData1,
[Types.FAILED_DATA1]: failedData1
});
在我的组件中,我connectgetData 的操作是这样的
const mapDispatchToProps = dispatch => ({
fetchData1: () => dispatch(getData())
});
运行此程序会导致以下错误
【问题讨论】:
标签: react-native react-redux redux-thunk