通过复选框的activation status
事件,我已经能够更改数据库中companies
的{{1}}。现在,我无法切换复选框的状态,这里我缺少什么?
我看过各个站点,但找不到解决方案。
这是我在其中印刷公司的代码。
onClick
这是我的职责。
{this.state.allCompanies.map(com => (
<tr>
<td>{com.cname} </td>
<td>
<a>
<input
type="checkbox"
name="active"
checked={com.is_active == 1 ? "true" : ""}
onClick={
(() => {
this.setState({ cked: !this.state.cked });
},
e => this.handleActivated(e, com.cid))
}
/>
</a>
</td>
</tr>
))}
答案 0 :(得分:1)
您正在将两个函数传递给onClick,据我所知(尽管我无法为此提供源代码或告诉您原因),react只会使用您赋予props的最后一个值。这就是为什么设置cked
的状态可能无效的原因。
我建议只给它1个这样的功能:
onClick={
(e) => {
this.setState({ cked: !this.state.cked });
this.handleActivated(e, com.cid)
}
}
如果只想在setState
完成后执行第二个(因为它是异步的),则应该使用setState
的回调函数。
onClick={
(e) => {
this.setState({ cked: !this.state.cked }, () => {
this.handleActivated(e, com.cid)
});
}
}