我试图将在 prevState 回调之外确定的值传递到函数中。这是我所拥有的:uncheckAllUnsentHandler = (e) => { const newCheckMarkValue = e.target.checked; this.setState((prevState, props, newCheckMarkValue) => { const newUnsentMail = prevState.unsentMail.map(policy => { mail.willSend = newCheckMarkValue; return mail; }); return { unsentMail: newUnsentMail } }); }newCheckMarkValue 在地图函数内未定义,我不知道为什么。详细描述:我有一个表,客户可以在其中选择是否要发送邮件。默认情况下,所有邮件项目都会在表中选中。在标题中,他们可以取消选中/选中全部。当单击标题复选框以取消选中时,我试图将表中邮件项目的状态调整为取消选中(willSend 是邮件上的属性)。如果我在下面的代码中将 willSend 硬编码为 true 或 false (例如:mail.willSend = true;),所有这些都有效,但我似乎无法获取标题中复选框的值。
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
设置状态
updater 函数只需要两个参数,state和props。state是对应用更改时组件状态的引用。
(state, props) => stateChange
newCheckMarkValue您可以简单地访问包含在 的外部范围中的版本uncheckAllUnsentHandler。
uncheckAllUnsentHandler = (e) => {
const newCheckMarkValue = e.target.checked;
this.setState((prevState, props) => {
const newUnsentMail = prevState.unsentMail.map(policy => {
mail.willSend = newCheckMarkValue;
return mail;
});
return {
unsentMail: newUnsentMail
}
});
}
添加回答
举报
0/150
提交
取消