JavaScript

JavaScript

Made by DeepSource

Typo in class properties and lifecycle methods JS-0453

Bug risk
Major
react

This issue ensures the proper casing and spelling while declaring static class properties and lifecycle methods. The static class properties i.e., propTypes, contextTypes and childContextTypes are supported by the react-props.

Casing typos are checked for in the following class properties:

  • propTypes
  • contextTypes
  • childContextTypes
  • defaultProps

and the following react lifecycle methods:

  • getDerivedStateFromProps
  • componentWillMount
  • UNSAFE_componentWillMount
  • componentDidMount
  • componentWillReceiveProps
  • UNSAFE_componentWillReceiveProps
  • shouldComponentUpdate
  • componentWillUpdate
  • UNSAFE_componentWillUpdate
  • getSnapshotBeforeUpdate
  • componentDidUpdate
  • componentDidCatch
  • componentWillUnmount
  • render

Bad Practice

class MyComponent extends React.Component {
  static PropTypes = {}
}

class MyComponent extends React.Component {
  static proptypes = {}
}

class MyComponent extends React.Component {
  static ContextTypes = {}
}

class MyComponent extends React.Component {
  static contexttypes = {}
}

class MyComponent extends React.Component {
  static ChildContextTypes = {}
}

class MyComponent extends React.Component {
  static childcontexttypes = {}
}

class MyComponent extends React.Component {
  static DefaultProps = {}
}

class MyComponent extends React.Component {
  static defaultprops = {}
}

class MyComponent extends React.Component {
  componentwillMount() {}
}

class MyComponent extends React.Component {
  ComponentWillReceiveProps() {}
}

class MyComponent extends React.Component {
  componentdidupdate() {}
}

class MyComponent extends React.Component {
  static propTypes = {
    a: PropTypes.typo
  }
}

class MyComponent extends React.Component {
  getDerivedStateFromProps() {}
}

Recommended

class MyComponent extends React.Component {
  static propTypes = {}
}

class MyComponent extends React.Component {
  static contextTypes = {}
}

class MyComponent extends React.Component {
  static childContextTypes = {}
}

class MyComponent extends React.Component {
  static defaultProps = {}
}

class MyComponent extends React.Component {
  componentWillMount() {}
}

class MyComponent extends React.Component {
  componentWillReceiveProps() {}
}

class MyComponent extends React.Component {
  componentDidUpdate() {}
}

class MyComponent extends React.Component {
  static propTypes = {
    a: PropTypes.bool.isRequired
  }
}

References