【发布时间】:2019-09-09 08:47:43
【问题描述】:
我有一个带有布尔状态的简单功能组件。以及改变状态的按钮。
它最初设置为true,所以当我按下真按钮时,它不会呈现。
但是如果我按下错误按钮,它会重新渲染,如果我再次按下错误按钮,即使状态已经设置为 false.. 也会重新渲染。
有人可以解释为什么当状态更改为完全相同的状态时组件会重新渲染吗?如何防止它重新渲染?
import React, {useState} from 'react';
const TestHooks = () => {
const [state, setState] = useState(true);
console.log("rendering..", state);
return(
<div>
<h1>{state.toString()}</h1>
<button onClick={() => setState(true)}>true</button>
<button onClick={() => setState(false)}>false</button>
</div>
)
}
export default TestHooks;
【问题讨论】:
-
请问你为什么要把它转换成字符串?
-
如果我通过未字符串化的状态,它不会呈现“true”/“false”。我想如果状态是字符串或数字,我不需要它。但是布尔值不起作用。
标签: reactjs react-hooks