亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號