React shouldComponentUpdate parameters

Tell us what’s happening:

I’m confused what the nextState parameter is for. It doesn’t appear to be used in the code.

Thanks for your help.

Your code so far


class OnlyEvens extends React.Component {
constructor(props) {
  super(props);
}
shouldComponentUpdate(nextProps, nextState) {
  console.log('Should I update?');
  // Change code below this line
  if (nextProps.value % 2 === 0)
  return true;
  // Change code above this line
}
componentDidUpdate() {
  console.log('Component re-rendered.');
}
render() {
  return <h1>{this.props.value}</h1>;
}
}

class Controller extends React.Component {
constructor(props) {
  super(props);
  this.state = {
    value: 0
  };
  this.addValue = this.addValue.bind(this);
}
addValue() {
  this.setState(state => ({
    value: state.value + 1
  }));
}
render() {
  return (
    <div>
      <button onClick={this.addValue}>Add</button>
      <OnlyEvens value={this.state.value} />
    </div>
  );
}
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36.

Challenge: Optimize Re-Renders with shouldComponentUpdate

Link to the challenge:

I’m guessing it’s just for completeness, to show the method signature.

If the child component did have some state that needed to be checked you would use nextState.


1 Like