javascript - JSX 组件 Lint 警告
问题描述
React 新手并试图理解它。使用此处的指南进行一些基本的表单字段验证:
https://redux-form.com/8.2.2/examples/fieldlevelvalidation/
我有这个工作,但我需要更改 renderField 组件的格式。
这工作正常:
renderField = (
{
input, label, type, meta: { touched, error, warning },
},
) => (
<div>
<input {...input} placeholder={label} type={type} />
{touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}
</div>
);
但我需要从中删除封闭的 < div >,以进行以下操作:
renderField = (
{
input, label, type, meta: { touched, error, warning },
},
) => (
<input {...input} placeholder={label} type={type} />
{touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}
);
这样做时,linter 对这里的第二行变得疯狂。它期望在输入标签之后有一个 ) 并且对第二行中的几乎每个字符都有抱怨!
我确信这是一个非常简单的概念,我没有掌握,所以任何帮助将不胜感激。
解决方案
在这种情况下,您可以替换为:
使用这个<></>
renderField = (
{
input, label, type, meta: { touched, error, warning },
},
) => (
<>
<input {...input} placeholder={label} type={type} />
{touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}
</>
);
或者
import react, {Fragment} from 'react';
renderField = (
{
input, label, type, meta: { touched, error, warning },
},
) => (
<Fragment>
<input {...input} placeholder={label} type={type} />
{touched && ((error && <span>{error}</span>) || (warning && <span>{warning}</span>))}
</Fragment>
);
这将避免渲染父div
元素或任何不需要的 HTML 元素来封装您的 JSX。
推荐阅读
- scala - 使用 Spark/Scala 过滤带有 JSON 字段的 RDD 的 csv
- flutter - 如何在颤动中按下小部件时更改小部件的颜色?
- python - 在 Python 中使用带有 Lambda 的 Map 函数:TypeError: () 接受 0 个位置参数,但给出了 1 个
- amazon-web-services - 我们如何将 aws 实例区域从美国东部(弗吉尼亚北部)us-east-1 更改为亚太地区(孟买)ap-south-1?
- node.js - Nodemailer 无法识别来自环境变量的凭据
- php - Woocommerce 相关产品部分显示相同的产品
- jquery - jQuery自动完成无法使用ajax调用
- php - 使用 htaccess 更改 url 中的文件夹名称
- android - 在 GridLayout 中填充第 5 列的问题
- python - 文件的 Flask 服务器端会话管理