zhu*_*ber 9 null components children lazy-evaluation reactjs
看看这个简单的例子:
const List = function({ loading, entity }) {
return (
<Layout loading={loading}>
<span>Name: {entity.name}</span>
</Layout>
);
};
Run Code Online (Sandbox Code Playgroud)
Layout组件children仅在loadingis时呈现false。但这里的问题是立即React解决Layout儿童问题。由于entity是null(while loading=true),我收到无法读取name的错误null。有没有一种简单的方法可以避免这个错误,因为它span总是会在entity不是时呈现null?
目前我知道 3 个选项:
span以stateless function接收entity作为propchildren的Layout在function后支持function children中Layout{entity && <span>Name: {entity.name}</span>}为什么我必须使用这些选项之一,我可以在渲染之前将React它们children视为函数并在内部解析块吗?
小智 1
我刚刚偶然发现了同样的问题。
对我有用的是将孩子作为函数传递:
ready: boolean;
children?: () => ReactNode,
}> = ({ ready, children }) => {
return (
<div>{
ready ?
children() :
(
<div>not ready</div>
)
}</div>
);
};
<Layout loading={loading}>
{() =>
<span>Name: {entity.name}</span>
}
</Layout>
Run Code Online (Sandbox Code Playgroud)
虽然它仍然不完美。
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |