我不明白,为什么在所附的代码示例中,async componentDidMount
方法不立即运行forceUpdate
,而是等待funcLazyLoad
promise 得到解决.我预计forceUpdate
只会在这样的建筑中等待promise 的解决
import React from 'react'
import ReactDOM from 'react-dom'
let data = ''
async function funcLazyLoad(ms) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(ms)
}, ms)
})
}
class App extends React.Component {
async componentDidMount() {
data = await funcLazyLoad(1000)
this.forceUpdate()
}
render() {
console.log('Render')
return <div>Hello {data}</div>
}
}
ReactDOM.render(<App />, document.getElementById('root'))
https://codesandbox.io/p/sandbox/practical-aryabhata-vg3h64?file=%2Fsrc%2Findex.js%3A15%2C30.