Я использую 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);
});
}