我正在使用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', { /* ... */ })
// ...
},
// ...
}
我无数次地检查了更新状态文档,一切看起来都正确。
答案 0 :(得分:1)
onNgrxForms()
仅在要素状态对象的顶层检查表单。因为我将状态分为ui / data,所以它没有更新我的状态,因为我在data.form
拥有表单。我不得不将其提升一个层次。另外,您可以编写自己的onNgrxForms()
实现。