const curTodos = useRef({});
const handleClickOpen = (o) => {
console.log(o);
curTodos.current = o;
setOpen(true);
};
const allTodos = todos.map((o) => {
console.log("re-render");
return (
<>
<div key={o.id} className="row">
<span>{o.name}</span>
<span>{o.id}</span>
<span>{o.email}</span>
<span>{o.task}</span>
<Button onClick={() => handleClickOpen(o)} variant="outlined">
Edit Todo
</Button>
</div>
</>
);
});

我想要:

curTodos 是對 todo 物件的參考
當我單擊編輯待辦事項時,我希望將默認值設定為行上的值。
由于它已經渲染,這將不起作用,它只會顯示為空輸入。
uj5u.com熱心網友回復:
useState(default)value 在掛載時只運行一次。由于您使用的組件不會在此視圖中卸載,因此您可以包含更新表單狀態的效果。
// in FormModal
useEffect(() => {
setName(o.name)
setTask(o.task)
}, [o]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449299.html
標籤:反应
上一篇:如何在反應中檢查div屬性的值
下一篇:不執行useEffect()錯誤TypeError:Cannotreadpropertiesofundefined(reading'toString')
