簡體   English   中英

useState 中的異步

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM