[英]Asynchron in useState
我的代碼是:
<blink>
const [thisButtomSelected, setThisButtomSelected] = useState({
thisVal: 1111,
thisIndex: 1111,
})
const onClick = e => {
setThisButtomSelected({ thisVal: e.currentTarget.value, thisIndex: e.currentTarget.id });
}
<li id="list" key={item.id}>
<button
value={item.value}
id={index}
className={isEqual(thisButtomSelected, { thisVal: item.value, thisIndex: index })
? 'button-selected' : 'button'
}
onClick={onClick}
>
{item.displayValue}
</button>
</li>
</blink>
每當我單擊應用程序中的按鈕時,它都會使thisButtomSelected
始終等於先前的值。
在這種情況下,是否無法將按鈕的樣式更改為選定的樣式?
我不明白問題出在哪里?
您正在使用的 isEqual function 不是本機 JavaScript function 使用,相反,您可以導入 Loadash 並使用它來比較兩個對象。 使用指令就像:
_.isEqual(object, other);
正如我之前提到的,您必須安裝 loadash package 並將其導入到您的 JS 文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.