示例
function test (props) }>
不用箭頭函式設定值:
}>
使用箭頭函式設定值:)}
示例/*每次setstate時,都要是全新的值*/
const [notnew,setnotnew]=usestate(0)
const [notnewarr,setnotnewarr]=usestate()
const [notnewobj,setnotnewobj]=usestate({})
useeffect(()=>,[notnew,notnewarr,notnewobj])
return (
)setnotnewobj((notnewobj)=>)
}}>
設定不是全新的值
}) }}>
設定是全新的值
}>
列印值)
結果 解釋
值相同的話是setstate的時候是不會執行的。陣列和物件不是變化了嗎?為什麼也不識別呢?引用形變數usestate監聽的時候是潛監聽,不會監聽你裡面到底變沒變,我只監聽你的引用變沒變,obj.name=1 ,你obj裡面變了,但是你obj的引用沒有變所以usestate認為沒變化。所以有的人setstate之後說為什麼我介面上列表渲染沒有變化就是因為這個
示例
/*state之間有依賴的話請使用usereducer*/
const [a,seta]=usestate(0)
const [b,setb]=usestate(0)
const [total,settotal]=usestate(0)
return (
}>
獲取a和b的合-total:
a:b:
)
結果 解釋
和第一點類似,它獲取不到最新的值,計算時候拿的是第一次的值,而不是seta和setb之後的新值。這裡也沒有箭頭函式來幫你。
使用usereducer
const initval=
function reducer(state,action)
}}function test (props) }>
獲取a和b的合-total:
a:b:
) }}>
使用usereducer獲取的-total:
VMWare Workstation使用總結幾則
1 安裝 使用ghost盤安裝時一定要注意,需要把空盤建立分割槽並設定為主分割槽 pq的使用形式,進入pq找到磁碟設定為啟用 否則 啟動後顯示boot from network intel e1000 有時裝機忘了,只能從頭再來 安裝64位的虛擬機器時,需要把bios中virtual technol...
VMWare Workstation使用總結幾則
1 安裝 使用ghost盤安裝時一定要注意,需要把空盤建立分割槽並設定為主分割槽 pq的使用形式,進入pq找到磁碟設定為啟用 否則 啟動後顯示boot from network intel e1000 有時裝機忘了,只能從頭再來 安裝64位的虛擬機器時,需要把bios中virtual technol...
pytest parametrize 使用總結
pytest中裝飾器 pytest.mark.parametrize 引數名 list 可以實現測試用例引數化,類似ddt。如 pytest.mark.parametrize 請求方式,介面位址,傳參,預期結果 get www.baidu.com post www.baidu.com pytest....