Ruft setState() in Reagieren render-Methode

Ich versuche reset Reagieren Zustandsvariablen (default-Werte) in einem container mit setState () - Methode. Aber immer folgende Fehler

 Warning: setState(...): Cannot update during an existing state transition 
(such as within `render` or another component's constructor). Render methods 
 should be a pure function of props and state; constructor side-effects are an anti-pattern, 
 but can be moved to `componentWillMount`.

Und schließlich: Maximum call stack size exceeded.

Meine folgenden code:

resetMsg=()=>  {  
const company = this.state.company;
company.id = 0;
company.messages = [];    
this.setState({company: company});       
}

Rufe ich resetMsg() wenn eine variable in der Redux-Zustand wahr ist.

Code, wo ich anrufen resetMsg (Der Wert von resetMessages falsch ist zunächst, und ich muss auf reset Reagieren-Zustand, wenn seine true ):

    render() {
    if(this.props.resetMessages){           
        this.resetMsg();           
    }
  • nicht setstate render-Methode, da es rerender und es wird eine Endlosschleife
  • ca, die Sie posten, wo Sie nennen diese resetMsg() ?
  • Irgendeine Idee, wie man Werte zurücksetzen?
  • besser rufen Sie setState in componentWillMount oder componentWillReceiveProps, nicht Rendern. erstellen Sie einen infinity-loop durch den Aufruf setState-in machen. da der Zustand ändern, wird die Komponente rendert wieder. möchten Sie vielleicht einen Blick auf das reagieren lifecycle-Methoden: reactjs.org/docs/react-component.html
InformationsquelleAutor user8125765 | 2018-01-12
Schreibe einen Kommentar