我目前有此代码,但EsLint显示以下错误:“Fragments必须包含多个子项-否则就不需要fragment。"。但如果不将代码 Package 在React. Fragment中,我就无法执行IF。有没有其他方法可以在不允许lint规则的情况下删除此错误?
return (
<>
{loading && (
<div className={classes.container}>
<img
alt="loading"
src={LoadingAnimation}
className={classes.img}
/>
</div>
)}
</>
);
1条答案
按热度按时间zpf6vheq1#
这是一种修复
编辑
由于这个答案得到了一些支持票,我将进一步解释:
简单地说,
Fragment
是React组件树中存在的元素,但不会在DOM中呈现。当您需要在JSX表达式中返回多个节点时,片段非常有用。这是一个非法代码:
这将产生错误
JSX expressions must have one parent element
。您可以将它们 Package 在另一个div
中,错误就会消失,但最终会得到另一个DOM元素。但是,当您使用Fragment
时,React将其理解为'parent element',但此元素不会出现在DOM树中:此外,您可以使用简写
<>
表示Fragment:这个问题的错误在于使用Fragment只返回一个孩子,它当然有效,但没有必要。