我想在使用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的形式與自定義插件每個國家獲得更新時間更新表單模型。我不覺得這個解決方案真的很乾淨,但也許我錯了。
我真的很瘦,我走錯了方向,它應該存在一個更好的方法。
有人已經遇到過這種問題嗎?
太棒了,它修復了它。我非常絕望,非常感謝! –