最佳答案
我对以下组件的输出非常困惑:
import { StrictMode } from "react"
import ReactDOM from "react-dom"
function Test(): React.ReactElement {
console.log('render')
Promise.resolve()
.then(() => console.log('then ' + Math.random()))
return <></>
}
ReactDOM.render(
<StrictMode>
<Test />
</StrictMode>,
document.getElementById("root")
)
它至少在 Chrome 和 Firefox 中产生以下输出:
00:46:30.264 render
00:46:30.267 then 0.5430663800781927
00:46:30.267 then 0.9667426372511254
我更希望看到相同数量的消息。我遗漏了什么?
转播: https://codesandbox.io/s/elegant-frost-dmcsl
编辑: 我知道严格模式会导致额外的渲染,但是如前所述,我希望消息的数量相同。
编辑2: 以下两个答案都很棒。我想在这里引用@user56的评论:
相关: 关于控制台静音的社区反馈