gpt4 book ai didi

javascript - 无法访问使用 React.lazy 导入的组件的静态属性

转载 作者:行者123 更新时间:2023-12-04 17:27:09 25 4
gpt4 key购买 nike

我在这样的文件中有一个 react 功能组件 -

const Slot: React.ElementType = () => null;
const Component = ({ children }): JSX.Element | null => {
const childrenArr = React.Children.toArray(children) as React.ReactElement[];
const slot = childrenArr.find(child => child.type === Slot);

return (
<div>
<div>Hi</div>
{slot && slot.props.children}
</div>
);
};

Component.Slot = Slot;
export default Component;
我通过使用 React.lazy 将它导入另一个组件来使用它
const Comp = React.lazy(() => import(/* webpackChunkName: "comp" */ './Component'))
我在 React.Suspense 下渲染这个组件, 像这样
 <Suspense fallback={null}>
<Comp>
Welcome
<Comp.Slot>Robert</Comp.Slot>
</Comp>
</Suspense>
但是 Robert不渲染。
另外,我收到了 Comp.Slot 的 Typescript 错误,说
Property 'Slot' does not exist on type 'LazyExoticComponent<{ (): Element | null; Slot: FunctionComponent<any>;}>'.
解决此问题的最佳方法是什么?请帮忙。

最佳答案

我相信lazy仅适用于默认导出,并且仅适用于导出的确切组件,因为它会在其周围创建某种 HOC。
你能做的就是制作这部分

   <Comp>
Welcome
<Comp.Slot>Robert</Comp.Slot>
</Comp>
独立组件并在其上使用惰性。

关于javascript - 无法访问使用 React.lazy 导入的组件的静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62530334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com