我想在使用redux调用ajax之后填充表单。如何在使用redux调度动作后更新字段值
我的情况很简单:
- 我有一个简单的用户形式(只有一个文本字段现在),这是必然的状态
connect()
一个反应视图。 - 我调用一个rest API来获取用户。
- 完成api调用后,会向用户发送操作。
- 减速器用用户更新商店状态。
- 我想用检索的值填充/更新表单。
解决方案1:
如果我设置的道具一样,值:
const Field = ({ field, onFieldChange, value }) => (
<input
value={value}
onChange={(event) => { onFieldChange(field, event.target.value) }}
type="text"
/>
)
它的工作原理,但我得到这样的警告:
Field is changing an uncontrolled input of type text to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa).
我明白为什么我得到这个错误,因为我不应该使用组件来显示一些东西,也能够更新它。
我也尝试使用defaultValue道具,但这只用于组件创建(并且我们还没有用户)。在ajax调用返回后,defaultValue不能被调用。
解决方案2:
使用Redux的形式与自定义插件每个国家获得更新时间更新表单模型。我不觉得这个解决方案真的很干净,但也许我错了。
我真的很瘦,我走错了方向,它应该存在一个更好的方法。
有人已经遇到过这种问题吗?
太棒了,它修复了它。我非常绝望,非常感谢! –