【发布时间】:2020-01-19 02:21:45
【问题描述】:
我正在使用 React 钩子,我希望我的组件在显示之前实际完成整个加载。
我目前的解决方案是这样的:
import React, {useState, useEffect} from 'react'
import Main from './Main'
export default function Container() {
const [isLoading, setisLoading] = useState(false);
useEffect(() => {
setTimeout(() => setisLoading(true), 1000)
})
return (
<div>
{(isLoading) ? <Main/> : <h1>I'm currently loading</h1>}
</div>
);
}
这里的问题是它加载了 1 秒,然后显示了我的 Main.js 组件,这需要大约 2 秒才能加载。我希望在显示组件之前完成实际加载。
【问题讨论】:
-
尝试使用
useLayouteffect -
你永远无法得到正确的超时值。而是使用dynamic imports 来避免使用 setTimeout 函数。
-
三元不是倒过来的吗?
-
什么意思 Main.js 需要 2 秒才能加载,要加载什么?
标签: javascript reactjs