解决React报错No duplicate props allowed
总览
当我们为相同的组件传递相同的属性多次时,就会导致"No duplicate props allowed"
警告。为了解决该警告,请确保只传递一次该属性。比如说,如果传递多次className
属性,将它们连接成一个空格分隔的字符串。
下面的示例用来展示如何导致警告的。
const App = () => { // ⛔️ JSX elements cannot have multiple attributes with the same name.ts(17001) // No duplicate props allowed eslintreact/jsx-no-duplicate-props return ( <div> <Button text="Click" text="Submit" /> </div> ); }; function Button({text}) { return <button onClick={() => console.log('button clicked')}>{text}</button>; } export default App;
代码片段中的问题在于,我们为Button
组件传递了两次text
属性。这是不被允许的,因为第二个text
属性会覆盖第一个。
请确保每个属性只传递给同一个组件一次。
const App = () => { // 👇️ only pass text prop once return ( <div> <Button text="Submit" /> </div> ); }; function Button({text}) { return <button onClick={() => console.log('button clicked')}>{text}</button>; } export default App;
className
如果你在试图传递多个className
属性时得到了错误,你必须将它们串联成一个字符串,并且只传递一次属性。
const App = () => { return ( <div> <h2 className="my-class-1 my-class-2 my-class-3">Hello world</h2> </div> ); }; export default App;
我们不需要传递多个className
属性,而是要在我们为className
属性设置的字符串中传递多个以空格分隔的类。
如果你需要在一个字符串属性中插入变量,请使用模板字面量。
const App = () => { const class1 = 'bg-lime'; const class2 = 'text-white'; return ( <div> <h2 className={`padding-3 ${class1} ${class2}`}>Hello world</h2> </div> ); }; export default App;
需要注意的是,模板字面量使用反斜线``,而不是单引号。美元符号大括号${}
语法里的表达式,将被替换成class1
和class2
变量的实际值。
总结
为了解决该错误,我们要确保相同的属性只传递一次。如果传递多次className
属性,将它们连接成一个空格分隔的字符串。
以上就是解决React报错No duplicate props allowed的详细内容,更多关于React报错duplicate props的资料请关注脚本之家其它相关文章!
- React报错Type '() => JSX.Element[]' is not assignable to type FunctionComponent
- React报错Element type is invalid解决案例
- React报错Function components cannot have string refs
- React报错Too many re-renders解决
- 解决React报错Property 'X' does not exist on type 'HTMLElement'
- Can't perform a React state update on an unmounted component报错解决
- Objects are not valid as a React child报错解决
- 解决React报错React.Children.only expected to receive single React element child
相关文章
react Input组件Compositionstart和Compositionend事件
这篇文章主要为大家介绍了Compositionstart和Compositionend事件之于react组件库Input组件的坑解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11React.memo React.useMemo对项目性能优化使用详解
这篇文章主要为大家介绍了React.memo React.useMemo对项目性能优化的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-01-01react component function组件使用详解
这篇文章主要为大家介绍了react component function组件的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11
最新评论