【发布时间】:2018-12-21 02:53:40
【问题描述】:
我有一个父组件,它是一个表单,它通过 redux 连接到商店:
// FormComponent
export default connect(mapStateToProps, mapDispatchToProps)(FormComponent);
在该表单中,我有一个输入属性列表,它们是表单的子组件:
- 表单组件
- 名字组件
- 姓氏组件
- 地址组件
我需要通过在输入失去焦点后立即传递包含所有属性的 JSON 对象来进行更新 API 调用,从而将任何字段中的更改保存到服务器。
API 调用类似于:
updatePersonInfo({firstname: 'new name', lastname: 'new name', address: 'new address' });
我的想法是将PersonInfo 对象作为道具从表单组件传递给所有子组件。每个子组件将从 PersonInfo 属性更新一个属性,并使用更新的 PersonInfo 对象调度 UPDATE_PERSONINFO 操作。
但要做到这一点,我还需要将所有子组件连接到存储:
// FirstNameComponent
export default connect(mapStateToProps, mapDispatchToProps(FirstNameComponent);
// LastNameComponent
export default connect(mapStateToProps, mapDispatchToProps)(LastNameComponent);
// AddressComponent
export default connect(mapStateToProps, mapDispatchToProps)(AddressComponent);
但我认为出于性能原因我们应该避免使用连接。 此外,我不相信我需要 4 个连接器来调用一个操作。
处理这种情况的最佳选择是什么?
【问题讨论】:
-
我认为在这里使用 redux-form 可能会对您有所帮助。
-
@AliaksandrSushkevich 另一个依赖!!!
-
为什么不直接使用它们而不是连接它们并处理父级上的
onChange以调度操作?
标签: reactjs react-redux