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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

React無(wú)狀態(tài)組件中“const”變量的順序

React無(wú)狀態(tài)組件中“const”變量的順序

守著一只汪 2021-10-21 16:11:51
假設(shè)我有一個(gè)簡(jiǎn)單的 React 無(wú)狀態(tài)組件,如下所示:const myComponent = () => {    const doStuff = () => {        let number = 4;        return doubleNumber(number);    };    const doubleNumber = number => {        return number * 2;    };    return <div>Hello {doStuff()}</div>;};export default myComponent;基于我收到的 eslint 錯(cuò)誤,以及我對(duì)“const”如何工作的理解,我假設(shè)這個(gè)組件不會(huì)呈現(xiàn),因?yàn)楹瘮?shù)“doubleNumber()”在初始化之前被函數(shù)“doStuff()”使用。但是,每當(dāng)我使用此組件時(shí),它都會(huì)按預(yù)期呈現(xiàn) - 為什么不拋出異常?這是否意味著 React 組件中“const”變量的順序可以隨心所欲?
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車(chē)

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

代碼工作的原因是因?yàn)閐oStuff直到調(diào)用它的主體才會(huì)執(zhí)行。由于doubleNumber碰巧在doStuff被調(diào)用之前定義,所以一切都很好,但是由于依賴倒置,linter 正確地將代碼識(shí)別為脆弱的。


僅當(dāng)您碰巧在調(diào)用doubleNumber時(shí)間之前沒(méi)有初始化時(shí)才會(huì)發(fā)生崩潰doStuff:


const doStuff = () => doubleNumber(4);

doStuff(); // ReferenceError: doubleNumber is not defined

const doubleNumber = number => number * 2;

這在這里似乎很明顯,但在更復(fù)雜的情況下可能不那么清楚。


constvslet應(yīng)該對(duì) linter 的輸出沒(méi)有影響,因?yàn)殡m然它們被提升了,但在初始化之前無(wú)法訪問(wèn)它們。


順序可以是任何你喜歡的,假設(shè)只有在依賴項(xiàng)可用時(shí)才進(jìn)行調(diào)用,但這并不是一個(gè)好主意(這正是 linting 應(yīng)該識(shí)別的)。


查看完整回答
反對(duì) 回復(fù) 2021-10-21
?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

您的情況在Block 范圍變量的Typescript 文檔中進(jìn)行了描述(導(dǎo)航到該部分的最后一位)。


它說(shuō) :


您仍然可以在聲明之前捕獲塊范圍的變量。唯一的問(wèn)題是在聲明之前調(diào)用該函數(shù)是非法的。如果針對(duì) ES2015,現(xiàn)代運(yùn)行時(shí)會(huì)拋出錯(cuò)誤;但是,現(xiàn)在 TypeScript 是寬容的,不會(huì)將此報(bào)告為錯(cuò)誤。


給出的例子是


function foo() {

    // okay to capture 'a'

    return a;

}


// illegal call 'foo' before 'a' is declared

// runtimes should throw an error here

foo();


let a;

在您的情況下,doubleNumber正在被捕獲 inside doStuff,但doubleNumber之前已聲明doStuff,因此根據(jù)文檔是可以的,就像a文檔示例中的變量一樣。


查看完整回答
反對(duì) 回復(fù) 2021-10-21
  • 2 回答
  • 0 關(guān)注
  • 293 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)