2017-06-12 87 views
0

我试图从另一个组件中更改一个组件的状态,并且我的状态没有更新,我发回了我想在应用程序组件中更新的prop,但是这个。的setState不工作this.setState在React中无法正常工作

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') 

这里是我的头组件

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> 
    ) 
    } 
} 

出口默认标题

+2

一切工作正常。该州正在更新。 –

+2

我同意@RITESHBANSAL。看到这个小提琴:https://jsfiddle.net/3aa6jmd4/2/ – thomas

+1

正如@RITESHBANSAL所说,在当前的代码中没有什么错,你试图访问更新后的状态值。 –

回答

0

尝试是这样的:

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

它的工作方式。谢谢 – user3233110