react refresh api call code example

Example 1: react refresh api call

import React, { Component } from 'react';

    class Dashboard extends Component {
      intervalID;

      state = {
        data: [],
      }

      componentDidMount() {
        this.getData();
      }

      componentWillUnmount() {
        /*
          stop getData() from continuing to run even
          after unmounting this component. Notice we are calling
          'clearTimeout()` here rather than `clearInterval()` as
          in the previous example.
        */
        clearTimeout(this.intervalID);
      }

      getData = () => {
        fetch('/endpoint')
          .then(response => response.json())
          .then(data => {
            this.setState({ data: [...data] });
            // call getData() again in 5 seconds
            this.intervalID = setTimeout(this.getData.bind(this), 5000);
          });
      }

      render() {
        return (
          <div>
            Our fancy dashboard lives here.
          </div>
        );
      }
    }

Example 2: react refresh api call

import React, { Component } from 'react';

    class Dashboard extends Component {
      /*
        declare a member variable to hold the interval ID
        that we can reference later.
      */
      intervalID;

      componentDidMount() {
        /*
          need to make the initial call to getData() to populate
         data right away
        */
        this.getData();

        /*
          Now we need to make it run at a specified interval,
          bind the getData() call to `this`, and keep a reference
          to the invterval so we can clear it later.
        */
        this.intervalID = setInterval(this.getData.bind(this), 5000);
      }

      componentWillUnmount() {
        /*
          stop getData() from continuing to run even
          after unmounting this component
        */
        clearInterval(this.intervalID);
      }

      getData = () => {
        // do something to fetch data from a remote API.
      }

      render() {
        return (
          <div>
            Our fancy dashboard lives here.
          </div>
        );
      }
    }

Tags:

Misc Example