Redux reducer没有获得状态参数

时间:2017-05-27 16:20:49

标签: reactjs react-redux redux-saga

我是Redux和Saga的新手。我有一个应用程序正在调用api数据,并且调用正在运行。我正在收回数据。但是,我无法弄清楚如何将数据放入状态。我尝试的方式不起作用。在执行此代码后调用Reducer时,不提供state。

 export function* downloadSeriesAsync(action) {
  try {
    let response = yield call(axios.get, '/content/series.json')
    yield put(downloadSeriesSuccess(response.data))
  }catch(e) {
    console.error(e);
  }
}

这是我调用API的Saga函数。

 yield put(downloadSeriesSuccess(response.data))

方法downloadSeriesSuccess是一个动作创建者,它发送一个动作,FYI。我不知道这是否是正确的方法。

export default (state = [], action) => {
    console.log('Calling the with State', state);
  if (action.type === c.ADD_DOWNLOADED_SERIES) {
    let newState = { ...state };
    newState.series = [...newState.series, action.payload];
    return newState;
  }
  else {
    return state;
  }
}

我遇到了问题。我的状态总是等于= []。

编辑:我意识到我的初始状态不是数组,所以我改变了所有的reducers来取代一个空对象。 {}。但是,我注意到在我的中间件代码执行后,初始状态似乎被更改回数组。

export default (initialState={}) => {
  console.log('Initial State', initialState);
  const sagaMiddleware = createSagaMiddleware();
  const all = applyMiddleware(sagaMiddleware, consoleLog)(createStore)(appReducer, initialState);
  sagaMiddleware.run(rootSaga);  
  return all;
}

我无法找到有关为何发生这种情况的任何信息。这也是我的国家似乎变空的点。

0 个答案:

没有答案