简体   繁体   English

无法将状态从子组件更改为父组件

[英]Cannot change state from child to parent component

I am try to change state in parent component onChange event. 我尝试更改父组件onChange事件中的状态。

On click on Checkbox state includeExtremeClaims should be changed into true . 在单击复选框状态时, includeExtremeClaims应该更改为true

Parent Component: 父组件:

export class ManageAnalytics extends Component {
  static contextTypes = baseContextTypes

  state = {
    includeExtremeClaims: false
  }

 handleChange = (e, { name, value } = {}) => {
    this.setState({ [name]: value })
  }

render() {
  return (
     <div>
        // Passing down handleChange and includeExtremeClaims state as props
        <Analytics
          handleChange={this.handleChange}
          includeExtremeClaims={this.state.includeExtremeClaims}
        />
      </div>
    )
  }

Child Compnent: 子级:

export class Analytics extends Component {
  static contextTypes = baseContextTypes

render() {
    const { handleChange, includeExtremeClaims } = this.props
  return (
    <Checkbox
      label="Include Extreme Cases"
      name="includeExtremeClaims"
      onChange={handleChange}
      value={includeExtremeClaims}          
    />
   )
}

Question is : On click on Checkbox Why my state is not changed? 问题是 :单击复选框后,为什么我的状态没有更改?

Problem was in value which is provide on Checkbox, value is always the same, that is reason why is not changed: 问题在于Checkbox上提供的值,值始终相同,这就是为什么未更改的原因:

value={includeExtremeClaims} it should be value={!includeExtremeClaims} value={includeExtremeClaims}应该是value={!includeExtremeClaims}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM