1 回答

TA貢獻1829條經驗 獲得超6個贊
您基本上會收到此錯誤,因為您在不允許的異步上下文(更新狀態)中使用事件。如果將事件分配給局部變量并引用它,則可以避免此錯誤。
如果我在字段中鍵入時設置“值”而不是“默認值”,我會得到 [Object, object]
您的onChange
事件處理程序將收到一個綜合事件對象和您傳遞給它的參數。使用您當前的代碼,您將整個事件對象分配為字段值。
您updateMedicialProfileDetails
作為onChange
道具傳遞的方法不在您的問題中,因此我以該updateProfileDetails
方法為例:
以下代碼應該有效:
?const updateProfileDetails = (fieldName) => (event) => {
? ? const { value } = event.target;
? ? setProfile({ ...profile, mProfile: {...profile.mProfile, [fieldName]: value }});
? };
您通過此函數傳遞的名稱參數是不必要的,因為您的事件對象將具有可用的名稱屬性,因此您的代碼可以更新為以下內容:
? <Input
? ? type="textarea"
? ? name="providerNotes"
? ? value={profile.providerNotes}
? ? onChange={onChange}
? ? oldValue={restoreData.providerNotes}
? />
事件處理程序:
? const updateProfileDetails = (event) => {
? ? const { name, value } = event.target;
? ? setProfile({ ...profile, mProfile: {...profile.mProfile, [name]: value }});
? };
添加回答
舉報