飲歌長嘯
2023-09-28 15:20:34
我試圖將在 prevState 回調(diào)之外確定的值傳遞到函數(shù)中。這是我所擁有的: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 在地圖函數(shù)內(nèi)未定義,我不知道為什么。詳細(xì)描述:我有一個表,客戶可以在其中選擇是否要發(fā)送郵件。默認(rèn)情況下,所有郵件項目都會在表中選中。在標(biāo)題中,他們可以取消選中/選中全部。當(dāng)單擊標(biāo)題復(fù)選框以取消選中時,我試圖將表中郵件項目的狀態(tài)調(diào)整為取消選中(willSend 是郵件上的屬性)。如果我在下面的代碼中將 willSend 硬編碼為 true 或 false (例如:mail.willSend = true;),所有這些都有效,但我似乎無法獲取標(biāo)題中復(fù)選框的值。
1 回答

白衣染霜花
TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊
設(shè)置狀態(tài)
updater 函數(shù)只需要兩個參數(shù),state和props。state是對應(yīng)用更改時組件狀態(tài)的引用。
(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
提交
取消