Я новичок в React Hooks, и я столкнулся с проблемой, которую едва понимаю.
В коде 1, если я правильно понимаю, начальное значение счетчика, переданное в useState()
, совпадает со значением, переданным в setCount()
при нажатии кнопки, и дочерние компоненты компонента Counter не должны повторно отображаться.
Код 1:
function Counter() {
const [count, setCount] = useState(1);
console.log("in", count)
return (
<div>
<h1>{count}</h1>
<button onClick={() => {
console.log("click")
setCount(1)
}}>click</button>
</div>
);
}
Но в коде 2, если значение, переданное setCount()
, было другим (и начальное значение count
равно 1), повторная визуализация дочерних компонентов компонента Counter должна выполняться один раз, а не более одного раза.
Но по какой-то причине он выполняет повторную визуализацию еще раз (когда состояние счетчика равно 2 и значение setCount (2)) и не более одного раза, что не должно происходить вообще, поскольку состояние счетчика равно 2, а setCount (2) означает состояние без изменений.
Код 2:
function Counter() {
const [count, setCount] = useState(1);
console.log("in", count)
return (
<div>
<h1>{count}</h1>
<button onClick={() => {
console.log("click")
setCount(2)
}}>click</button>
</div>
);
}
Я не уверен, верно ли мое понимание о useState()
на React Hooks. Или если кто-то, кто мог бы объяснить, как React Hooks использует useState в деталях, был бы очень признателен.
P.S
Я использую версию реагирующих крючков: 16,8.6