propType [name] 不是必需的,但没有对应的 defaultProps 声明 ReactJS

Nik*_*ffy 10 reactjs

      import styled from 'styled-components'
      import propTypes from 'prop-types'
      import React from 'react'
  const Checkbox = ({ className, checked, ...props }) => (
  <CheckboxContainer className={className}>
    <HiddenCheckbox checked={checked} {...props} />
    <StyledCheckbox checked={checked}>
      <Icon viewBox="0 0 24 24">
        <polyline points="20 6 9 17 4 12" />
      </Icon>
    </StyledCheckbox>
  </CheckboxContainer>
)

Checkbox.propTypes = {
  checked: propTypes.boolean,
  className: propTypes.string,
}
Run Code Online (Sandbox Code Playgroud)

我有这个组件,我总是收到这个错误:不需要错误 propType "className",但没有相应的 defaultProps 声明 react/require-default-props

我不知道如何解决它,请问有什么建议吗?

keu*_*eul 12

它在文档中进行了解释:https : //reactjs.org/docs/typechecking-with-proptypes.html#default-prop-values

当您将此道具标记为不需要时,它会要求您设置默认值,以防道具丢失。

所以,像这样(但默认值取决于你):

Checkbox.defaultProps = {
  checked: false,
  className: null,
}
Run Code Online (Sandbox Code Playgroud)


Ism*_*rov 5

如果你想禁用这种类型的警告,只需更新你的rules内部.eslintrc.json

"rules": {
  "react/require-default-props": "off"
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其标记为警告

"rules": {
  "react/require-default-props": "warn"
}
Run Code Online (Sandbox Code Playgroud)