reactjs - 在函数参数中使用解构时,ESLint 会引发“道具验证中缺少”错误
问题描述
我正在尝试描述表列并在列“渲染”函数中使用函数参数解构:
const columns = [
{
field: 'description',
// The parameter is row data object
render: ({ id, description }) => (
<Tooltip title={ id }>
<div>
{ description }
</div>
</Tooltip>
)
}
]
我得到了一个“react/prop-types”错误
道具验证中缺少“id”
与“描述”相同。所以我不得不使用:
render: (task) => (
<Tooltip title={ task.id }>
<div>
{ task.description }
</div>
</Tooltip>
)
我想知道,也许仍然可以使用参数解构?
解决方法:
"react": "^16.7.0",
"eslint": "^5.3.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-plugin-react": "^7.12.4",
"eslint-plugin-react-app": "^4.0.1"
编辑:
我决定只为这些代码片段添加 eslint-disable-next-line
解决方案
这与解构无关,只是因为 eslint 解释columns.render
为一个组件并要求您记录它的 props。
您仍然可以定义columns.render.propTypes
以满足 eslint。
const columns = [
{
field: 'description',
// The parameter is row data object
render: ({ id, description }) => (
<Tooltip title={ id }>
<div>
{ description }
</div>
</Tooltip>
)
}
];
columns.render.propTypes = {
id: PropTypes.string,
description: PropTypes.string,
};
推荐阅读
- azure - 在 VPN P2S 下连接到 Azure 资源
- .net - 更改 WCF 服务以与 .NET Framework 和 .NET Core 调用者兼容
- python - 使用整数元素及其逆生成列表的所有可能组合
- java - 使用 Java SDK 创建具有临时 OS 磁盘的 Azure 虚拟机
- python-3.x - 将证书传递到请求库中
- geometry - 椭圆重叠区域
- javascript - Google App 功能 - 重新计算/刷新值
- elasticsearch - 基于键值约束检索对象列表
- python - 使用列表中的索引替换字符串中的每个字符
- python - unittest 在 PyCharm 中工作但无法从命令行运行