为什么我会收到此警告“不允许重复道具 react/jsx-no-duplicate-props”

Why am I getting this warning `No duplicate props allowed react/jsx-no-duplicate-props`

为什么我会收到此警告?

warning No duplicate props allowed react/jsx-no-duplicate-props#

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

您可能将同一个 prop 传递给一个组件两次。例如

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

我也遇到这个错误,我正在渲染一个组件并通过 '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,
 }}
>

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

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

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

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

关于 uppercase/lowercase Material-UI TextField 的问题,一个需要 inputPropsInputProps 的组件,我没有希望 ESLint 为此输出警告,所以我将其添加到我的 .eslintrc.json 文件中:

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

可以是以下之一:

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

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

示例:

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

应该是:

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