ngrx Forms 8 Reducer不会更新状态

时间:2019-09-16 23:13:23

标签: angular typescript ngrx

我正在使用ngrx表单(特别是ngrx 8语法)来同步表单和状态存储。表单状态更新操作已成功调度,例如

{
  controlId: 'adForm.location.community',
  value: 'wst',
  type: 'ngrx/forms/SET_VALUE'
}

但是,状态始终保持不变,上面的内容在Redux开发工具中没有区别。

我的减速器如下:

export const reducer = createReducer(
  initialAdFormStoreState,
  onNgrxForms(),
  // Other action handlers
  // ...
)

export const adFormReducer = wrapReducerWithFormStateUpdate(
  reducer,
  (s) => s.data.form,
  adFormValidators,
)

初始状态创建如下:

const initialAdFormStoreState: AdFormStoreState = {
  data: {
    form: createFormGroupState<AdForm>('adForm', { /* ... */ })
    // ...
  },
  // ...
}

我无数次地检查了更新状态文档,一切看起来都正确。

1 个答案:

答案 0 :(得分:1)

onNgrxForms()仅在要素状态对象的顶层检查表单。因为我将状态分为ui / data,所以它没有更新我的状态,因为我在data.form拥有表单。我不得不将其提升一个层次。另外,您可以编写自己的onNgrxForms()实现。