【发布时间】:2018-01-02 17:00:12
【问题描述】:
我正在使用具有 14 个输入标签的 react redux 制作页面。
每个输入标签都有 14 个不同的状态名称。
当任何输入发生变化时,我该怎么做才能更新状态?
我是否需要为每个输入标签编写动作和化简器?
【问题讨论】:
我正在使用具有 14 个输入标签的 react redux 制作页面。
每个输入标签都有 14 个不同的状态名称。
当任何输入发生变化时,我该怎么做才能更新状态?
我是否需要为每个输入标签编写动作和化简器?
【问题讨论】:
当然,您必须重构您的应用以执行单个操作,例如:
{ type: 'UPDATE', field: '<name of your field>', value: <value here> }
然后在你的减速器中:
case 'UDPATE':
const { field, value } = action.payload;
return { ...state, { [field]: value }};
【讨论】:
如果您要更新一个 reducer 中的属性,您可以执行以下操作:
在一个对象中调度更新的值,然后将它与reducer中的先前状态合并。
dispatch({
type: 'UPDATE_FIELD',
data: { banana: 'yellow' },
});
在你的减速器中:
case 'UPDATE_FIELD':
return {
...state,
...data,
};
【讨论】: