猿问

React - 将值传递给 setState 回调

我试图将在 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;),所有这些都有效,但我似乎无法获取标题中复选框的值。


饮歌长啸
浏览 79回答 1
1回答

白衣染霜花

设置状态updater 函数只需要两个参数,state和props。state是对应用更改时组件状态的引用。(state, props) => stateChangenewCheckMarkValue您可以简单地访问包含在 的外部范围中的版本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    }  });}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答