gpt4 book ai didi

reactjs - 取消选中 React 中的复选框后组件状态未更新

转载 作者:行者123 更新时间:2023-12-04 10:07:47 24 4
gpt4 key购买 nike

我只是想使用多个复选框的 handleChange 方法更改我的应用程序的状态。

当我单击每个复选框时,我的状态从 false 更改为 true,但是当我取消选中它时,我的状态不会更改以反射(reflect)它,我似乎无法弄清楚原因!

import React, { Component } from "react";

export class StepOne extends Component {
constructor(props) {
super(props);
this.state = {
box1: false,
box2: false,
box3: false,
};
}

handleChange = (evt) => {
const box = evt.target.name;
this.setState({ [box]: !this.state.box });
};

render() {
return (
<div>
<input type="checkbox" name="box1" onChange={this.handleChange} />
<input type="checkbox" name="box2" onChange={this.handleChange} />
<input type="checkbox" name="box3" onChange={this.handleChange} />
</div>
);
}
}

最佳答案

使用点表示法时,编译器会尝试查找名为 box 的字段。在状态中并且由于它不存在 - 切换复选框时您没有得到任何结果。

改用括号表示法:

handleChange = (evt) => {
const box = evt.target.name;
this.setState((prevState) => ({
[box]: !prevState[box],
}));
};

备注 : 设置状态时考虑使用函数,以确保引用相关状态。

关于reactjs - 取消选中 React 中的复选框后组件状态未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61488100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com