React-Redux Connect无法与Redux-Saga配合使用

时间:2019-07-18 20:14:58

标签: react-redux redux-saga

下午好!我在使用redux-saga的简单请求时遇到问题。

我有3个动作:请求-> onSuccess / onFail。 request操作将重置任何错误并将加载标志设置为true。 onSuccess / onFail将此加载标志设置为false,并进行其他任何必要的更改。我在componentDidUpdate内部使用这些标志来控制流程。我在所有应用程序中都使用了这种模式,到目前为止,我从未遇到过任何问题。

在redux-logger和reducer内的console.logs上,一切正常。但是这些更改并未反映在我的组件上。

我怀疑随着时间的推移会出现一些奇怪的问题,因为传奇事件解决的速度太快,无法使connect组件正常工作,所以我增加了100ms的延迟,突然一切正常。

reducer.js

  case c.SEND_COMMAND_REQUEST: {
    // console.log('STATE1', state);

    return {
      ...state,
      loading: true,
      error: null,
    };
  }


  case c.ON_COMMAND_SUCCESS: {
    // console.log('STATE2', state);

    return {
      ...state,
      loading: false,
    };
  }

saga.js

function* sendCommandRequest({ payload }) {
  try {
    // yield sendCommand(payload);
    yield delay(100) // this works
    yield put(actions.onCommandSuccess({ id: payload.id }));
  }

  catch (err) {
    yield handleError(err, actions.onCommandFail, { id: payload.id });
  }

  export default function* commandsSaga() {
    yield takeLatest(c.SEND_COMMAND_REQUEST, sendCommandRequest);
  }
}

通过点击我应用上的“发送”按钮,我希望加载的值是:

SEND_COMMAND_REQUEST(prevProps.loading):true ON_COMMAND_SUCCESS(道具加载):false

但没有增加延迟,我就得到了

SEND_COMMAND_REQUEST:此减速器完全没有返回任何内容 ON_COMMAND_SUCCESS(道具加载):false

我什至都不知道怎么用谷歌搜索。预先感谢!

0 个答案:

没有答案