2 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
React-Event綁定的事件回調(diào)函數(shù)中打印e.nativeEvent.currentTarget可以發(fā)現(xiàn)結(jié)果是#document, 也就是說(shuō)React的事件機(jī)制應(yīng)該是全部綁定在了document上。
之前在componentDidMount里面通過(guò)document.body.addEventListener綁定了點(diǎn)擊事件,因?yàn)閎ody其實(shí)也是document的下級(jí),所以是先執(zhí)行body綁定的回調(diào)函數(shù)。
另外即使改成document.addEventListener來(lái)綁定點(diǎn)擊事件(假設(shè)是function1),在ReactElement中使用e.stopPropagation()是無(wú)法阻止function1的調(diào)用,要想阻止function1調(diào)用,可能只能e.nativeEvent.stopImmediatePropagation();

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
React 在組件間傳遞數(shù)據(jù)的確比較惱火。目前基本上只有通過(guò) props 來(lái)傳遞。所以你必須在 button 和 listitem 共有的父組件上設(shè)置 state,再通過(guò)傳遞這個(gè)父組件定義事件處理函數(shù)來(lái)更新?tīng)顟B(tài),通過(guò)狀態(tài)更新來(lái)觸發(fā)子組件的更新
- 2 回答
- 0 關(guān)注
- 983 瀏覽
添加回答
舉報(bào)