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

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

ev.target 和 Node.contains:EventTarget 不可分配給 Node

ev.target 和 Node.contains:EventTarget 不可分配給 Node

這是代碼:function bodyClickHandler(ev: MouseEvent) {    if(containerRef.current && containerRef.current.contains(ev.target)) return;    setOpen(false);}錯誤:'EventTarget | 類型的參數(shù) null' 不可分配給類型為“Node |”的參數(shù) 無效的'。類型“EventTarget”缺少類型“Node”中的以下屬性:baseURI、childNodes、firstChild、isConnected 和 44 more.ts(2345)containerRef.current是一個HTMLDivElement. .contains應(yīng)該是這個功能。不ev.target保證是Node某種類型的嗎?我可以投射它(ev.target as Node),但我試圖弄清楚在什么情況下這可能會失敗?我可以點(diǎn)擊什么不是節(jié)點(diǎn)?
查看完整描述

2 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個贊

簡短的回答:這是由于他們的打字不當(dāng)造成的。繼續(xù)施放吧。

長答案:發(fā)生這種情況的原因是因?yàn)槿绻鷨螕?code><svg />按鈕內(nèi)部(例如),它將event.target指向 SVG,這不能保證是按鈕(顯然)。只有事件currentTarget指向處理程序所在的元素。因此,做出 React 類型的人決定將事件定義currentTarget為我們示例中的內(nèi)容button,但除了事件是一個 EventTarget 之外,不對事件做出任何保證。target因此,你不得不施放它。



查看完整回答
反對 回復(fù) 2023-12-11
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個贊

我剛剛開始使用 Typescript。我有一個類似的問題,我的解決方案是,我知道該事件總是由 DomElement 觸發(fā)。


這就是我通知 Typescript 的方式:


function bodyClickHandler(ev: MouseEvent) {

    if(containerRef.current && containerRef.current.contains(ev.target as HTMLElement)) return;

    setOpen(false);

}

如果您喜歡將其分開:


function bodyClickHandler(ev: MouseEvent) {

    const target = ev.target as HTMLElement;

    if(containerRef.current && containerRef.current.contains(target)) return;

    setOpen(false);

}


查看完整回答
反對 回復(fù) 2023-12-11
  • 2 回答
  • 0 關(guān)注
  • 207 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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