2017-06-12 7 views
0

Ich versuche, den Status einer Komponente aus einer anderen Komponente zu ändern, und mein Status wird nicht aktualisiert, ich sende die Requisite ich möchte in meiner App-Komponente, aber dies zu aktualisieren. setState nicht funktioniertthis.setState in React funktioniert nicht

import React, {Component} from 'react'; 
import ReactDOM from 'react-dom'; 

import Header from './components/Header'; 
class App extends Component{ 
constructor(){ 
    super(); 
    this.state = { 
    homeLink: "Home" 
    } 
} 
onChangeLink(newLink){ 
    this.setState({ 
     homeLink: newLink 
    }); 
} 
render(){ 
    var user = { 
     name: "sadf" 
    } 
    return(
     <div className="container"> 
      <div className="row"> 
       <Header changeLink={this.onChangeLink.bind(this)}/> 
      </div> 
     </div> 
    ); 
} 
} 

ReactDOM.render(
<App />,document.getElementById('app') 

Und hier ist meine Header-Komponente

import React, {Component} from 'react'; 

class Header extends Component{ 
constructor(){ 
    super(); 
this.state = { 
    homeLink: 'New Link' 
} 
} 
onChangeLink(){ 
    this.props.changeLink(this.state.homeLink); 
} 
render(){ 
    return(
    <nav className="navbar navbar-default"> 
     <button onClick={this.onChangeLink.bind(this)}>Change Link</button> 
    </nav> 
    ) 
    } 
} 

Exportstandardkopf

+2

Alles funktioniert gut für mich. Der Status wird aktualisiert. –

+2

Ich stimme @RITESHBANSAL. Siehe diese Geige: https://jsfiddle.net/3aa6jmd4/2/ – thomas

+1

Wie @RITESHBANSAL sagte, gibt es nichts falsch im aktuellen Code, wo versuchen Sie, auf den aktualisierten Statuswert zuzugreifen. –

Antwort

0

Probieren Sie etwas wie folgt aus:

let newPropValues = { 
    root: event.target.value 
}; 
this.setState(Object.assign({}, this.state, newPropValues)); 
+0

Es funktionierte so. Danke – user3233110

Verwandte Themen