首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复选框不反映ReactJS中状态的更改

复选框不反映ReactJS中状态的更改
EN

Stack Overflow用户
提问于 2020-05-08 06:51:33
回答 1查看 63关注 0票数 0

我无法让我的reactjs组件反映复选框中状态的实际变化。有没有人能帮忙或者指出我下面的代码有什么问题。

这是我的州

代码语言:javascript
复制
 state = {
    data: {
      name: "",
      address: "",
      city: "",
      country: "",
      mobile_number: "",
      description: "",
      has_conference: false,
      star_rating: "",
    },
    errors: {},
  };

此句柄复选框方法

代码语言:javascript
复制
toggleChange = () => {
    this.setState({
      has_conference: !this.state.data["has_conference"],
    });
  };

最后是render方法中的复选框代码

代码语言:javascript
复制
                <label>
                <input
                  type="checkbox"
                  has_conference={this.state.data["has_conference"]}
                  onChange={this.toggleChange}
                />
                Conferencing
              </label>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 07:15:54

在您的代码中有两件事需要更正。

1:在toggleChange中,你不改变this.state.data.has_conference,但是你改变了this.state.has_conference,它不存在于初始状态。要更改this.state.data.has_conference,您需要在toggleChange函数中执行以下操作:

代码语言:javascript
复制
let data = this.state.data
data.has_conference = !data.has_conference
this.setState({data})

2:在中,您需要将this.state.data.has_conference值绑定到checked属性。在代码中,你需要写:

代码语言:javascript
复制
<input type="checkbox" onChange={this.toggleChange} checked={this.state.data.has_conference}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61669104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档