2017-07-19 6 views
1

Ich versuche derzeit, den Status meiner Komponenten über eine untergeordnete Komponente zu aktualisieren, aber die Callback-Funktion teilt mir mit, dass der Status nicht aktualisiert wurde.

Methode (loadModuleContent)Reagieren Aktualisierungszustand seltsames Verhalten

export default class LayoutPage extends React.Component { 
    constructor() { 
     super(); 
     this.startSession = this.startSession.bind(this); 
     this.loadModuleContent = this.loadModuleContent.bind(this); 
     this.state = { 
      content: undefined, 
      group: undefined, 
      title: undefined, 
      selectionIndex: undefined 
     } 
    } 

    static navigationOptions = { 
     header: null 
    }; 

    loadModuleContent(_content, _title, _selectedIndex) { 
     console.log("Inserting index: " + _selectedIndex); 
     this.setState({ 
      content: _content, 
      title: _title, 
      selectionIndex: _selectedIndex 
     }, console.log("State updated:" + this.state.selectionIndex)); 
    } 
... 

Das Konsolenprotokoll
enter image description here

Antwort

2

Sie verwenden nicht die callback wie im setState Anruf bestimmt. Anstatt einen Callback zu übergeben, übergeben Sie einen Methodenaufruf, der sofort ausgewertet wird. Ändern Sie Ihre setState zu diesem

this.setState({ 
     content: _content, 
     title: _title, 
     selectionIndex: _selectedIndex 
    },() => console.log("State updated:" + this.state.selectionIndex)); 

Wenn Sie nicht ES06 verwenden Sie schreiben die Funktion im zweiten param.

+0

fühle mich so dumm .... danke –