React setState solo puede actualizar un componente montado o montado
Recibo la siguiente advertencia
"Advertencia: setState (...): solo puede actualizar un componente montado o montado. Esto generalmente significa que llamó a setState () en un componente desmontado. Esto es un no-op. Compruebe el código del componente ContactPage"
Cuando inicialmente voy a la página de contacto, la primera vez está bien. Luego, si salgo de la página y vuelvo, aparece la advertencia.
Componente de página de contacto:
import React, { Component, PropTypes } from 'react';
import AppStore from '../../stores/AppStore';
import AppActions from '../../actions/AppActions';
import DataContent from './DataContent';
const title = 'Contact Us';
class ContactPage extends Component {
constructor(props) {
super(props);
this.state = AppStore.getState();
AppActions.getData();
}
static contextTypes = {
onSetTitle: PropTypes.func.isRequired,
};
componentWillMount() {
this.context.onSetTitle(title);
AppStore.listen(this.onChange.bind(this));
}
componentWillUnmount() {
AppStore.unlisten(this.onChange.bind(this));
}
onChange(state) {
this.setState(state);
}
renderData() {
return this.state.data.map((data) => {
return (
<DataContent key={data.id} data={data} />
)
})
}
render() {
return (
<div className={s.root}>
<div className={s.container}>
<h1>{title}</h1>
<div>
{ this.renderData() }
</div>
</div>
</div>
);
}
}
export default ContactPage;
Cuando pongo depuradores, al cargar la página de contacto, llega a componentWillMount (). Cuando salgo de la página de contacto, llega a componentWillUnmount (). Cuando vuelvo a la página, vuelve a presionar componentWillMount () y luego arroja el error cuando presiona la función onChange (estado).