Table: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.
React 在未来大版本会移除函数组件的 defaultProps 属性支持,改用 js 函数方法的 default 值替换。
点击跳转确实看到了 antd 的 Table 组件使用了 detaultProps 属性。
这是比较老的写法了,直接用 TS 可以替代这种。
react 未来的大版本应该说的是 React-19 了,在官网找到了说明:
这是直接拥抱 TS 了。
项目中使用的 @types/react 给这个属性增加了标记
目前 antd 并没有升级版本来解决这个警告,看着可以通过 eslint 关闭这个警告
1. 安装依赖 npm install eslint-plugin-react --save-dev
2. 修改 eslint 配置
module.exports = {
plugins: ['react'],
extends: ['plugin:react/recommended'],
rules: {
'react/require-default-props': 'off'
}
};
(plugin:react/recommended是eslint-plugin-react插件提供的一个推荐的规则配置)
我试了下,继承 react/recommended 和我们已有的集成 react-app 差比比较大,会出现更多个告警。
暂时没找到好的解决方案
限制 react 到一个没有校验它的历史版本
查看目前项目 react 和 @types/react 的版本
为什么在 github 搜不到 !
改从 npmjs 仓库 找到链接
DefinitelyTyped/types/react at master · DefinitelyTyped/DefinitelyTyped · GitHub
这怎么还没有 18 版本,都是什么鬼,看了下默认的 index.d.ts 就是最新版了,有版本文件夹的是归档的
不是使用分只控制版本的,应该是 publish 控制的,这要到 npmjs 里看看了
也是缝缝补补的一堆版本
最近没有校验的是 18.2.79 版本
试了下所有的 @types/react 18.3 版本都是把它标记为弃用,所以需要降到 18.2,如果真要降 还是直接改 react 版本比较合理,否则容易出现声明版本不匹配
这要直接修改外层的 package.json
{
"@types/react": "~18.2.0",
"@types/react-dom": "~18.2.0",
"react": "~18.2.0",
"react-dom": "~18.2.0",
}