2017-02-16 3 views
0

Ich bin neu zu reactjs Framework und ich habe ein bisschen Verwirrung, wenn das richtige Weg zu hören, wenn Zustand nach einem API-Aufruf ändern.Hören, wenn Statuswechsel über Redux - ReactJS

Verwendung then und catch nach einem action über componentDidUpdate Aufruf: aufrufen

componentDidMount(){ 
     this.props.getHero(this.props.params.id).then((result) => { 
      this.props.initialize({ 
       "name":result.name, 
       "description": result.description 
      }); 
     }) 
     .catch(error => { 

     }); 
    } 

oder über componentWillUpdate

// Call the getHero action (API) 
componentDidMount(){ 
    this.props.getHero(this.props.params.id); 
} 

// Then listen if the state change via `mapToStateProps` 
componentDidMount(){ 
    this.props.getHero(this.props.params.id); 
} 
componentWillUpdate(){ 
     this.props.initialize({ 
      "name":this.props.heroes.name, 
      "description": this.props.heroes.description 
     }); 
    } 
+0

Was hat das mit Redux zu tun? – Pavlo

+0

@Pavlo auf dem zweiten Block mit der KomponenteWillUpdate, schicke ich Daten von meiner Aktion, nachdem ich die Daten über API abrufen, so dass ComponentWillUpdate ausgelöst wird, weil die Requisiten über MapStateToProps ändern. Deshalb frage ich, ob es richtig war? Darf ich um Ihren Vorschlag bitten? –

Antwort

2

in componentWillUpdate ist für Änderungen Anhören

componentWillUpdate() d unmittelbar vor dem Rendern, wenn neue Requisiten oder Zustände empfangen werden. Verwenden Sie dies als Gelegenheit, um Vorbereitungen zu treffen, bevor ein Update durchgeführt wird. Diese Methode wird nicht für das anfängliche Rendern aufgerufen.

Belastungsdaten in componentDidMount

componentDidMount() aufgerufen wird, unmittelbar nachdem ein Bauteil montiert wird. Initialisierung, die DOM-Knoten erfordert, sollte hier gehen. Wenn Sie Daten von einem Remote-Endpunkt laden müssen, können Sie hier die Netzwerkanforderung instanziieren. Wenn Sie in dieser Methode den Status festlegen, wird ein erneutes Rendern ausgelöst.

+0

Sie können sich dies [Beispiel] (https://github.com/reactjs/redux/blob/master/examples/async/src/containers/App.js) des Erstellers von Redux – juancab

+0

@juankab ansehen, danke! – lustoykov

Verwandte Themen