Redux - Async - 输入字段更改时的POST状态

时间:2017-04-19 07:12:32

标签: asynchronous redux redux-thunk redux-saga

我有一个带有一些非常简单的表单字段的应用程序,并且希望每次更新字段时都会触发对服务器的POST请求,以便在数据库中同步数据。

在输入字段更改时,将使用键和&分配同步操作。要更新的字段的值。此操作由以下reducer处理。

docker rmi

现在我想将整个新的更新状态发布到服务器。

  1. 如何使用redux-saga / redux-thunk实现?在上述reducer完成更新状态后触发另一个动作是否正确?我该如何触发此类行动?
  2. 根据下面的响应,我使用新值更新状态,然后将数据POST到saga处理程序生成器中的服务器,但我不确定此实现是否正确。 How to fire AJAX calls in response to the state changes with Redux?

    1. 在每次更改时POST整个状态并与服务器同步是否正确?是否应该仅发布新值并在响应时更新应用程序状态?

    2. 您会建议采用完全不同的方法吗?

    3. 我想澄清一下,经过一段时间的搜索,我的问题没有找到任何明确的答案。在redux堆栈中是新的,我不太确定我的问题可能有多相关。

1 个答案:

答案 0 :(得分:0)

实施比最初想象的要简单得多。我唯一要做的就是在我的传奇中“听到”同样的派遣行动。

function* handleChange(action) {
 try {
    let state = yield select(state => state);
    yield put(syncing());
    const response = yield call(api,{state});
    if(response.updated) {
       yield put(syncSucceeded());
    } else {
      yield put(syncFailed());
    }
  } catch (e) {
    yield put(syncFailed(e));
  }
}

function* mySaga() {
   yield takeLatest(INPUT_FIELD_UPDATE, handleChange);
}