为了账号安全,请及时绑定邮箱和手机立即绑定

React - 将值传递给 setState 回调

React - 将值传递给 setState 回调

饮歌长啸 2023-09-28 15:20:34
我试图将在 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

    }

  });

}


查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信