为什么只这样定义状态:
const [flipCardDeg, changeFCDeg] = useState(0);
在正常功能组件中是否会导致额外的重新渲染周期? 而不是重新渲染1次,而是重新渲染两次。
我知道,如果在某处使用“ changeFCDeg”来更改状态,则应重新渲染,这样就可以了。但是为什么在开始时初始化所有内容时又重新渲染一次呢?
我应该担心有2次而不是一次的重新提交吗?如果可以,该如何处理?
答案 0 :(得分:1)
只要检测到更改,就重新渲染。您可以尝试通过准确指定更改的含义来控制它。例如,像这样:
const getMoreData = false
const [flipCardDeg, changeFCDeg] = useState(0);
useEffect(() => {
console.log('say something once')
return () => {
console.log('why say it again?')
}
}, [getMoreData]) // will only run once unless getMoreData is changed