菜鳥問題。考慮一下下面的代碼片段:
export const Parent = ({data}) => {
const [myData, setShowResults] = useState({isOpen: false, title: 'test'})
function handleCheck(evt) {
console.log(evt.currentTarget.textContent);
//how to change current myData.title with evt.currentTarget.textContent?
}
return (
<div className='c-dropdown'>
<Child data={data} isOpen={myData.isOpen} onCheck={handleCheck}/>
<p>{myData.title}</p>
</div>
);
}
在 handleCheck 回呼函式中,我收到了所需的資訊,但我找不到如何使用新收到的資訊更改 myData.title 的方法。
uj5u.com熱心網友回復:
使用功能狀態更新和淺拷貝先前的狀態物件。
例子:
function handleCheck(evt) {
const { textContent } = evt.currentTarget;
console.log(textContent);
setShowResults(data => ({
...data, // <-- copy previous state
title: textContent, // <-- update property
}));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/453273.html
上一篇:獲取useState回傳的值
