Как заставить RAM клиента не расти при получении API от React? - PullRequest
1 голос
/ 12 октября 2019

Я использую React для создания веб-приложения и получения проблем с оперативной памятью при получении API. Оперативная память клиента растет и не останавливается. Как я могу это исправить? И почему проблема появляется? Вот мой код:

    class GetLoginInfo extends React.Component{
            constructor(props){
            super(props);
            this.state = { isLoading: false}
            }

  CallApiInfo(){
    fetch('http://localhost:8070/' + request_info,{
  // mode: 'cors',
  signal: controller.signal,
  headers: {
    'Access-Control-Allow-Origin':"*",
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  method: "GET"
    })
    .then((response) => response.json())
    .then((responseJson) => {
      this.setState({
        isLoading: true,
    resultData: responseJson.status
  });
})
.catch((error) => {
  console.error(error);
});
  }

  render(){
this.CallApiInfo();
result_data = this.state.resultData;
if (!this.state.isLoading) {
  return React.createElement('div',null,'Loading...');
}

return React.createElement('p',null,result_data );
  }
}

Во-первых, я думаю, потому что переменная. Так что я когда-либо сбрасывал состояние, но это не исправило это. И это выглядит так:

    class GetLoginInfo extends React.Component{
    constructor(props){
    super(props);
    // this.state = { isLoading: true}
    this.state = this.getInitialState();
  }
  getInitialState(){
    const initialState = {
      isLoading: false
    };
    return initialState;
  }
  resetState(){
        this.setState(this.getInitialState());
  }
  CallApiInfo(){
    fetch('http://localhost:8070/' + request_info,{
  // mode: 'cors',
  signal: controller.signal,
  headers: {
    'Access-Control-Allow-Origin':"*",
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  method: "GET"
    })
    .then((response) => response.json())
    .then((responseJson) => {
      this.resetState();
      this.setState({
        isLoading: true,
    resultData: responseJson.status
  });
})
.catch((error) => {
  console.error(error);
});
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...