第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

對解構變量進行賦值是否合適?

對解構變量進行賦值是否合適?

回首憶惘然 2023-11-11 16:09:39
我已經state這樣聲明了, this.state = { filtersEnabled: false}后來我destructured這個對象如下,let { filtersEnabled } = this.state;現在,我想改變 的值filtersEnabled,filtersEnabled = true當我這樣做時console.log(this.state.filtersEnabled),答案是=> false,但是如果我按如下方式更改值 this.state.filtersEnabled = true現在如果我這樣做的話console.log(this.state.filtersEnabled),答案就是=> true,這里有什么問題,destructured1.我們不對變量進行任何賦值嗎?或者destructured2.我們不對狀態(tài)變量進行任何賦值嗎?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

當您像這樣更改值時:


 this.state.filtersEnabled = true

您正在改變財產的價值。但是當你像這樣改變值時:


 filtersEnabled = true

您基本上為filtersEnabled 分配了一個新值。不再引用原始值。


考慮這個例子:


let a = 1;

let b = a;

a++;

你期望b是嗎2?不,因為++、 like+=和=都是創(chuàng)建新分配的運算符。


這也是我們需要let這些案例的原因。const不允許我們做出改變。


然而,這確實改變了兩者:


const a = { val: 1 };

const b = a;

a.val++;

b指向同一個對象。我們從不重新分配a(這也是我們可以在這里使用的原因),但我們確實重新分配(和)的const屬性。所以仍然是同一個對象,但我們修改了對象內部的某些內容。 ab


查看完整回答
反對 回復 2023-11-11
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

在 React 中,當你想要更新時,state你應該通過方法傳遞,this.setState而不是直接改變狀態(tài)。

不要直接修改狀態(tài)

執(zhí)行destructuring該操作this.state將根據從解構的對象獲取的不同鍵的值創(chuàng)建新變量。這將失去元素與引用的任何類型的耦合,因為只有對象鍵可以引用它們的主要引用,無論它們發(fā)生變化。

let person = {

? "name": "John Doe",

? "age": 40

};


person.name = "Jeanne Doe";


console.log(person);


let { name } = person;

name = "Scott Duck"

console.log(person);

正如您在上面的示例中看到的,在我解構對象之后,person變量name不再與person對象緊密相連,我們釋放了對該person.name屬性的引用。

當您訪問時,filtersEnabled您不再訪問具有相同名稱的組件狀態(tài)的值,而是訪問該變量在特定時間保存的值。

為了保持對狀態(tài)中的值的嚴格控制,請使用this.setState改變狀態(tài)并通過this.state.filtersEnabled或使用結構化值進行訪問如果您知道解構中創(chuàng)建的變量所保存的值將與 中的值相同state,則可以在只要render我們知道render方法大多數時候都會在狀態(tài)改變時執(zhí)行。


查看完整回答
反對 回復 2023-11-11
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

不會。通過破壞變量,它會轉換為局部變量,并且狀態(tài)是全局的,因此您需要做的就是this.state.filtersEnabled = true在狀態(tài)中全局重新分配它,以便在類中的任何地方使用。

通過這樣做this.state.filtersEnabled = true,它將重新評估該值,但如果您需要重新渲染視圖,那么您必須這樣做this.setState({ filtersEnabled: true});


查看完整回答
反對 回復 2023-11-11
  • 3 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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