[問題] React中滑鼠移入、移出,state的控制
範例如下:
https://stackblitz.com/edit/react-gv3phw?file=index.js
兩個DIV區塊,當滑鼠移入的時候顯示該區塊的文字,
滑鼠移出的時候隱藏該區塊的文字
可是實際做的時候發現
當單一區塊移入移出都沒有問題
可是從左區塊移入右區塊
卻發現文字怎麼都顯示
正常應該頁面上只會有一個顯示
於是下了個console.log看結果發現
原本預期的步驟是
enter render leave render enter render leave render
但是跑出來是
enter render leave enter render leave render
沒錯~中間少了個render造成結果不正確
但一直想不到是為什麼?
我在onMouseEnter跟onMouseLeave都有下setState
為何從區塊移到另一個區塊時
卻沒有發生render?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.70.222.22 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1572278815.A.5AC.html
→
10/29 00:43,
5年前
, 1F
10/29 00:43, 1F
→
10/29 00:43,
5年前
, 2F
10/29 00:43, 2F
→
10/29 00:47,
5年前
, 3F
10/29 00:47, 3F
→
10/29 00:48,
5年前
, 4F
10/29 00:48, 4F
→
10/29 00:48,
5年前
, 5F
10/29 00:48, 5F
→
10/29 00:49,
5年前
, 6F
10/29 00:49, 6F
→
10/29 00:49,
5年前
, 7F
10/29 00:49, 7F
→
10/29 00:49,
5年前
, 8F
10/29 00:49, 8F
→
10/29 00:50,
5年前
, 9F
10/29 00:50, 9F
→
10/29 00:50,
5年前
, 10F
10/29 00:50, 10F
→
10/29 00:51,
5年前
, 11F
10/29 00:51, 11F
→
10/29 00:51,
5年前
, 12F
10/29 00:51, 12F
謝謝大大~再請問一個問題
當我從左區塊移入右區塊的時候
到底是左區塊的onMouseLeave先觸發還是右區塊的onMouseEnter先觸發
因為仔細想了一下順序
(左區塊移入→移到右區塊→移出右區塊)
f f (初始) f f (初始)
t f (左 mouseEnter) t f (左 mouseEnter)
f f (左 mouseLeave) ★ t t (右 mouseEnter)
f t (右 mouseEnter) f t (左 mouseLeave)
f f (右 mouseLeave) f f (右 mouseLeave)
因為★處好像會影響state不同的狀態(雖然最後結果一樣)
然後發現最早問題裡的render狀態
mouseEnter跟mouseLeave會有一處沒render的那個部分
恰好是這個瞬間
那不就好在沒render,所以最後結果是相同
還是說那個瞬間因為是非同步執行,所以是同時發生的
※ 編輯: ctah (122.116.84.179 臺灣), 10/29/2019 09:36:00
※ 編輯: ctah (122.116.84.179 臺灣), 10/29/2019 09:41:57
→
10/29 12:27,
5年前
, 13F
10/29 12:27, 13F
→
10/30 05:36,
5年前
, 14F
10/30 05:36, 14F
→
10/30 05:36,
5年前
, 15F
10/30 05:36, 15F
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章