是否可以通过从孩子那里获得价值来设定父母的状态?

时间:2018-03-13 09:53:42

标签: reactjs

我尝试通过从子级获取值来设置父级状态,不幸的是我收到错误,说setState不是父组件中的函数。

App.js

class App extends Component{
  state={
    data:{name:''}
  }
  getName(name){
    this.setState({data:{name:name}});
  }
  render(){
    const {data}=this.state;
    return(
      <div>
       <h2>Name : </h2>{data.name}
        <MyName getName={this.getName}/>
      </div>
    )
  }
}

MyName.js

class MyName extends Component{
  state={
    data:{name:''}
  }
  onChange = (e, {name, value }) =>
    this.setState({ data:{ name: value} },() => {
      this.props.getName(this.state.data);
  })

  render(){
    const {data}=this.state;
    return(
      <div>
        <form>
          <input 
            type='text'
            value={data.name}
            onChange={this.onChange}
        </form>
      </div>
    )
  }
}

是否可以这样做,如果可能,任何人都可以告诉我如何。

1 个答案:

答案 0 :(得分:0)

更改

<MyName getName={this.getName}/>

<MyName getName={name => this.getName(name)}/>