Prop spreading is forbidden warning in React
Prop spreading is forbidden warning in React
警告“Props spreading is forbidden”是当我们在将 props 传递给组件时使用 spread 语法解压 props 对象时引起的。要绕过警告,请禁用 eslint 规则。
这是警告如何引起的示例。
应用程序.js
const App = props => { // ⛔️ Prop spreading is forbidden eslint(react/jsx-props-no-spreading) return ( <div> <Button {...props} /> </div> ); }; export default App; function Button(props) { return <button {...props}>Click</button>; }
消除警告的最佳方法是禁用
.eslintrc
文件中的规则。
.eslintrc.js
module.exports = { rules: { 'react/jsx-props-no-spreading': 'off', } }
或者,您可以通过在文件顶部添加以下注释来禁用单个文件的规则。
应用程序.js
/* eslint-disable react/jsx-props-no-spreading */ // ... your code here
ESlint
规则
期望我们在传递 props 时不要使用
扩展语法 (…)
来解压对象,而是将单个 props 传递给组件。
应用程序.js
const App = props => { const {disabled, className} = props; // 👇️ only passing props directly return ( <div> <Button disabled={disabled} className={className} /> </div> ); }; export default App; function Button({disabled, className}) { return ( <button disabled={disabled} className={className}> Click </button> ); }
但是,大多数时候该规则带来的麻烦多于实际帮助,因此最好将其关闭。
结论
警告“Props spreading is forbidden”是当我们在将 props 传递给组件时使用 spread 语法解压 props 对象时引起的。要绕过警告,请禁用 eslint 规则。