1 回答

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊
您的代碼需要進(jìn)行一些小的更新才能正常工作。
您需要在更新任何狀態(tài)變量之前檢查是否_isMounted是。true
您還需要設(shè)置_isMounted=falseincomponentWillUnmount()而不是_isMounted=true.
請參閱下面的更新代碼:
export default class something extends React.Component {
_isMounted = false;
state = {
};
componentDidMount() {
this._isMounted = true;
firebase = new Fire((error, user) => {
if (error) {
return alert('something something something something');
}
firebase.getLists((lists) => {
if (this._isMounted){
this.setState({ lists, user }, () => {
this.setState({ loading: false });
});
}
});
if (this._isMounted){
this.setState({ user });
}
});
}
componentWillUnmount() {
this._isMounted = false;
firebase.detach();
}
添加回答
舉報