React中的this.setState不起作用

时间:2017-06-12 06:34:08

标签: reactjs

我正在尝试从另一个组件更改一个组件的状态,而我的状态没有更新,我发回我想要在我的应用程序组件中更新的道具,但是this.setState不起作用

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

导出默认标题

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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