解决React报错No duplicate props allowed

 更新时间:2022年12月05日 09:37:43   作者:chuck  
这篇文章主要为大家介绍了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;

需要注意的是,模板字面量使用反斜线``,而不是单引号。美元符号大括号${} 语法里的表达式,将被替换成class1class2变量的实际值。

总结

为了解决该错误,我们要确保相同的属性只传递一次。如果传递多次className属性,将它们连接成一个空格分隔的字符串。

以上就是解决React报错No duplicate props allowed的详细内容,更多关于React报错duplicate props的资料请关注脚本之家其它相关文章!

相关文章

  • React中的useState和useEffect详细解析

    React中的useState和useEffect详细解析

    useState和useEffect是React的两个重要Hook,用于组件状态管理和处理副作用,useState允许添加状态变量,控制组件渲染,而useEffect用于执行渲染后的副作用操作,本文给大家介绍React中的useState和useEffect详细解析,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • react Input组件Compositionstart和Compositionend事件

    react Input组件Compositionstart和Compositionend事件

    这篇文章主要为大家介绍了Compositionstart和Compositionend事件之于react组件库Input组件的坑解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • React.memo React.useMemo对项目性能优化使用详解

    React.memo React.useMemo对项目性能优化使用详解

    这篇文章主要为大家介绍了React.memo React.useMemo对项目性能优化的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • React 之 Suspense提出的背景及使用详解

    React 之 Suspense提出的背景及使用详解

    这篇文章主要为大家介绍了React 之 Suspense提出的背景及使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • react ant protable自定义实现搜索下拉框

    react ant protable自定义实现搜索下拉框

    这篇文章主要介绍了react ant protable自定义实现搜索下拉框,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • React实现虚拟滚动的三种思路详解

    React实现虚拟滚动的三种思路详解

    在​​web​​开发的过程中,或多或少都会遇到大列表渲染的场景,为了解决大列表造成的渲染压力,便出现了虚拟滚动技术,本文主要介绍虚拟滚动的三种思路,希望对大家有所帮助
    2024-04-04
  • react-player实现视频播放与自定义进度条效果

    react-player实现视频播放与自定义进度条效果

    本篇文章通过完整的代码给大家介绍了react-player实现视频播放与自定义进度条效果,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-01-01
  • React Hooks中模拟Vue生命周期函数的指南

    React Hooks中模拟Vue生命周期函数的指南

    React Hooks 提供了一种在函数组件中使用状态和其他 React 特性的方式,而不需要编写类组件,Vue 的生命周期函数和 React Hooks 之间有一定的对应关系,本文给大家介绍了React Hooks中模拟Vue生命周期函数的指南,需要的朋友可以参考下
    2024-10-10
  • react component function组件使用详解

    react component function组件使用详解

    这篇文章主要为大家介绍了react component function组件的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • react-router中Link标签和a标签有什么区别

    react-router中Link标签和a标签有什么区别

    本文主要介绍了react-router中Link标签和a标签有什么区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06

最新评论