setState Callback in Class Componenet

PHOTO EMBED

Tue Jun 29 2021 09:50:41 GMT+0000 (Coordinated Universal Time)

Saved by @hisam #react.js #javascript #react

import React, { Component } from 'react';

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      age: 0,
    };
  }
  
  // this.checkAge is passed as the callback to setState
  updateAge = (value) => {
    this.setState({ age: value}, this.checkAge);
  };

  checkAge = () => {
    const { age } = this.state;
    if (age !== 0 && age >= 21) {
      // Make API call to /beer
    } else {
      // Throw error 404, beer not found
    }
  };

  render() {
    const { age } = this.state;
    return (
      <div>
        <p>Drinking Age Checker</p>
        <input
          type="number"
          value={age}
          onChange={e => this.updateAge(e.target.value)}
        />
      </div>
    );
  }

}

export default App;
content_copyCOPY

This drinking age checker component displays a single input. After changing the value inside that input, it changes the age value inside of its state.