setTimeout стакается в componentDidUpdate

Доброе время суток. React подключен к рельсам через ActionCable (вебсокет). Нужно каждое определенное время дёргать инфу с сервера и записывать в стейт.

Проблема: очень сильно проседает производительность, оно и понятно - информация с сервера дёргается каждые 30 милисекунд, при этом мне нужно обновлять кол-во листов, название листа, кол-во карточек, название карточки.

Для обновления информации я использую componentDidUpdate и тут всё в полном порядке до тех пор пока этих самых листов нет. После того как я добавляю новый лист GET запросы стакаются и сервер жрёт cpu как не в себя.

componentDidUpdate в BoardContainer:

componentDidUpdate = () => {
    setTimeout(() => {
      axios.get(`${API_ROOT}/lists`).then((response) => {
        this.setState({ lists: response.data.lists });
      });
    }, 3000);
  };

Так же и с другим componentDidUpdate в ListContainer:

  componentDidUpdate = () => {
    setTimeout(() => {
      axios.get(`${API_ROOT}/cards`).then((response) => {
        this.setState({ cards: response.data.cards });
      });
    }, 3000);

    setTimeout(() => {
      axios.get(`${API_ROOT}/lists/${this.props.list_id}`).then((response) => {
        this.setState({ title: response.data.list.title });
      });
    }, 3000);
  };

Каким образом можно решить проблему? Заранее благодарю.


Ответы (0 шт):