Sto ottenendo il seguente avvisoReagire setState può aggiornare solo un componente montato o montaggio
"Attenzione: setState (...): Può aggiornare solo montato o un componente di montaggio Questo di solito significa che hai chiamato setState.() su un componente non montato. Questo è un non operativo. Controllare il codice per il componente ContactPage. "
Quando inizialmente vado alla pagina di contatto, la prima volta va bene. Quindi, se esco dalla pagina e torno indietro, l'avviso viene lanciato.
Pagina contatto componente:
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;
Quando ho messo in debugger, il carico di pagina di contatto colpisce componentWillMount(). Quando esco dalla pagina dei contatti, colpisce componentWillUnmount(). Quando torno alla pagina, colpisce ancora componentWillMount() e poi genera l'errore quando colpisce la funzione onChange (stato).
ha funzionato! Grazie :) – erichardson30
". Bind restituisce sempre una nuova funzione" .... mind blown !!! – CambridgeMike
Grazie per questo. Ho lottato con esso per un paio d'ore. – Avdept