gpt4 book ai didi

reactjs - 惰性渲染 child

转载 作者:行者123 更新时间:2023-12-03 13:25:03 24 4
gpt4 key购买 nike

看一下这个简单的例子:

 const List = function({ loading, entity }) {
return (
<Layout loading={loading}>
<span>Name: {entity.name}</span>
</Layout>
);
};

Layout组件正在渲染其 children仅当loading时是 false 。但这里的问题是React正在解决Layout children 立即。自 entitynull (而 loading=true )我收到错误,它无法读取 namenull 。有没有一种简单的方法可以避免此错误,因为这个 span总是在 entity 时渲染不是null

目前我知道 3 个选项:

  1. 移动此spanstateless function接收 entityprop
  2. 包裹整个childrenLayoutfunction然后支持function childrenLayout
  3. 只需使用 {entity && <span>Name: {entity.name}</span>}

为什么我必须使用这些选项之一,我可以制作 React考虑那些children作为函数并解析 block 稍后在渲染之前?

最佳答案

我刚刚偶然发现了同样的问题。

对我有用的是将 child 作为函数传递:

  ready: boolean;
children?: () => ReactNode,
}> = ({ ready, children }) => {
return (
<div>{
ready ?
children() :
(
<div>not ready</div>
)
}</div>
);
};


<Layout loading={loading}>
{() =>
<span>Name: {entity.name}</span>
}
</Layout>

虽然还不够完美。

关于reactjs - 惰性渲染 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53614097/

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