React Hook 修改状态的时候,传的状态值没有变化,但第一次依旧重新渲染了?
`
function Counter4() {
const [counter, setCounter] = useState(1);
console.log('render', counter);
return (
<>
<p>{counter}</p>
<button onClick={() => setCounter(2)}>setCounter</button>
<button onClick={() => setCounter(counter)}>set same counter</button>
</>
)
}
`
首次加载时候 控制台第一次 输出 render 1
首先点击第一个按钮, counter变成了2,控制台输出 render 2
这时候点击第二个按钮,setCounter传入的值是counter,按理说我传的状态值没有变化,不会重新渲染,控制台不应该输出的,但是 依然输出了 render 2,当我继续点击的时候 就不会render了
请问这是什么原因呢,是和Object.is浅比较有关吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
React Hooks文件里有说到Bailing out of a state update: