【发布时间】:2020-10-02 11:47:49
【问题描述】:
我创建了一个 react 功能组件来基于谓词包装代码段(而不是在 JSX 中使用三元)。
所以,组件看起来像这样:
const PredicateWrapper = ({ children, iff, otherwise }) => (
iff ? children : (otherwise || null)
);
并且可以这样使用:
<PredicateWrapper iff={students}>
{students.map(student => <Student />)}
</PredicateWrapper>
问题在于,如果students 为空,则会引发错误“无法读取空属性映射”。如果我用一些文本替换students.map,则文本不会呈现,证明包装器正在工作,但是,包装器的重点是处理students 为空的情况,我希望它不会“在包装器中输入”。
如果iff 是假的,我怎样才能实现这样的东西,允许内部代码不评估并抛出运行时错误?
【问题讨论】:
标签: reactjs jsx conditional-operator