【问题标题】:Why am I getting this warning `No duplicate props allowed react/jsx-no-duplicate-props`为什么我收到此警告“不允许重复的道具反应/jsx-no-duplicate-props”
【发布时间】:2017-02-21 12:22:47
【问题描述】:

为什么我会收到此警告?

警告不允许重复的道具 react/jsx-no-duplicate-props#

它显示第 28 行,但没有使用任何道具。

【问题讨论】:

    标签: react-redux


    【解决方案1】:

    您可能两次将相同的道具传递给组件。例如

    <MyComponent someProp={'a'} someProp={'b'} />
    

    【讨论】:

    • 你的意思是我将相同的道具两次传递给一个组件。?
    • 是的,我最近遇到了这个错误,这是我的原因
    • 我正在使用 Material UI 并且我收到 InputProps 和 inputProps 的错误,这是不一样的(大写 I 和小写字母 i)我该怎么办?
    • 我在不知不觉中添加了两次onHandleInputChange={}props。公认的解决方案仍然有效。谢谢!
    • 大声谢谢!我刚收到这个警告,我很困惑为什么会这样......但这个答案确实帮助了我
    【解决方案2】:

    我也出现了这个错误,我正在渲染一个组件并两次传递了“className”。我的解决方案在这里找到了How to apply multiple classnames to an element。然后我只是将名称连接在一起,错误消失了,我的 UI 呈现完美。

    //错误

    <IconButton
      color="secondary"
      className={classes.button}
      className={classes.test}
      component="span"
      classes={{
        root: classes.checkRoot,
      }}
    >

    //解决办法

    <IconButton
     color="secondary"
     className={[classes.button, classes.test ]}
     component="span"
     classes={{
        root: classes.checkRoot,
     }}
    >

    【讨论】:

    • 就这么简单 :)) 实际上我浪费了几天的时间!但我找不到问题!谢谢
    【解决方案3】:

    当在同一标签上使用任何重复属性时会出现警告,即

        <input id="a" id="b" />
        <MyComponent someProp={'a'} someProp={'b'} />
        <input placehoder="a" placeholder="a" />
        <div className='a' className='b'></div>
    

    【讨论】:

    • 这是我的问题。有带有 2 个alt= 标签的常规链接。
    【解决方案4】:

    关于 Material-UI TextField 的大写/小写问题,这是一个采用 inputPropsInputProps 的组件,我不希望 ESLint 为此输出警告,所以我将其添加到我的 .eslintrc 中。 json 文件:

    "rules": {
        "react/jsx-no-duplicate-props": [1, { "ignoreCase": false }]
      }
    

    【讨论】:

    • 这正是我在使用 MUI TextField 时遇到的问题。奇怪的是,根据文档,false 是默认值,所以我们必须应用一些其他自以为是的 linter 设置。谢谢。
    【解决方案5】:

    它可以像 HTML 上的重复 id 一样简单:

    <input id="txt-id" id="txtID" />
    

    【讨论】:

      【解决方案6】:

      可以是以下之一:

      <input id="a" id="b" />
      <MyComponent someProp={'a'} someProp={'b'} />
      <input placehoder="a" placeholder="a" />
      <div className='a' className='b'></div>
      

      【讨论】:

        【解决方案7】:

        只是想分享这个,因为我不认为这是可能的错误。但是当我需要输入两个时,我遇到了这个问题。

        例子:

        <input required type="email" name="form-email" required />
        

        应该是:

          <input type="email" name="form-email" required />
        

        【讨论】:

        • 这为我修好了,我有双 alt=""
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-19
        • 1970-01-01
        • 2011-06-13
        • 2011-11-10
        • 1970-01-01
        相关资源
        最近更新 更多