【发布时间】:2020-06-03 16:27:09
【问题描述】:
这是对我的场景的简化
import React, { useState } from 'react';
import dynamic from 'next/dynamic';
const DynamicImportedComponent = dynamic(() => import('Foo/baz'), {
ssr: false,
loading: () => <p>loading..</p>
});
const MyComponent: React.FC = () => {
const [show, setShow] = useState(false)
const variableComponent = <SomeStyledComponent styled={show}>value of show is {show.toString()}</SomeStyledComponent>
return (
<>
{variableComponent}
{ show && <DynamicImportedComponent />}
<button onClick={() => setShow(!show)}>toggle</button>
</>
)
}
有一个切换状态允许我显示或不显示动态加载的组件
我有一个始终呈现的组件,但根据切换可能会显示不同的样式。
当用户单击按钮时,状态设置为 true 并且组件被动态加载。同时,nextjs 渲染加载消息。到目前为止,一切顺利
但是,我希望 variableComponent 在加载 DynamicImportedComponent 时不可见。这是因为它有一些样式在加载器中看起来不太好。有没有办法检测组件是否已完成加载?加载组件后,我会像往常一样渲染variableComponent
我在想一些类似的东西
{(DynamicImportedComponent.loaded || !DynamicImportedComponent.isLoading) && variableComponent}
但这似乎并不存在。
我正在使用最新版本的 React 和 nextjs,以及 typescript
【问题讨论】:
-
几天前我在 Next.js 上打开了一个功能请求,但在发布此评论时没有回复 github.com/zeit/next.js/issues/10853
标签: reactjs typescript next.js