Невозможно выполнить обновление состояния React для неустановленного компонента.утечка памяти - PullRequest
0 голосов
/ 24 сентября 2019

Я использую response-native-router-flux и передаю адрес предыдущему компоненту.Передача значения, но я получаю предупреждение Невозможно выполнить обновление состояния React для несмонтированного Чтобы исправить, отмените все подписки и асинхронные задачи в методе componentWillUnmount.


class ChangeAddress extends Component {

  constructor(props) {
    super(props);
    this.state = {
      text:''
    };
    this.handleChange = this.handleChange.bind(this);
  }

    onPressNext =() => {
       Actions.replace('Navigate', {text:this.state.text});
    }

    handleChange(text) {
      this.setState({ text: text });
    }

  render() {
       return(
        <View>
            <TextInput
                placeholder="Enter Address"         
                onChangeText={this.handleChange } 
            />
            <Button title =" Save Address" onPress={this.onPressNext}  />
        </View>
        );
  }
}
export default ChangeAddress;```

1 Ответ

1 голос
/ 24 сентября 2019

Попробуйте этот пример кода: -

Посмотрите, где я добавил _isMounting и следуйте тому же в коде

class Page extends Component {
 _isMounted = false;

 state = {
   isLoading: true
 }

 componentDidMount() {
  this._isMounted = true;

  callAPI_or_DB(...).then(result => {
    if (this._isMounted) {
     this.setState({isLoading: false})
   }
  });
}

componentWillUnmount() {
this._isMounted = false;
}

render() {
  return (
    <div>Whatever</div>
    );
  }
}

export default Page;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...