瞎扯
爲什麼今天不寫flutter呢,因爲今天週日我還加班了.
寫了一天react.實在沒精力去研究flutter.
剛好,寫react碰到點問題.記錄下來
爲什麼不會刷新?
比如:
list.foreach(item=>{
item.name='123'
})
this.props.refresh(list)
refresh=(list)=>(dispatch)=>{
dispatch({
type:'refresh',
list,
})
}
以上代碼純手打,不是很全,大致就是這個意思了.
原因
爲什麼不刷新呢?
其實就是個很簡單的問題.
內存地址
這個問題不管是java還是什麼,都是很常見的.
因爲我修改了list的數據.但是這個list還是原來的對象.
所以當我再通過redux去更新這個list的時候.
因爲判斷兩個對象的地址爲同一個.setState就會有問題.
按正常設計來說,這種情況當然不會去更新界面,重繪UI.因爲你傳入了重複的對象(即使list內的元素已經改變)
所以,哪怕redux的state的數據已經變了,卻不會重繪界面.
解決辦法也簡單
創建一個新對象就行了,
list.foreach(item=>{
item.name='123'
})
const newList={
...list,
}
this.props.refresh(newList)
這樣,就不會出現更新了state,界面卻不更新的問題了.'
您的喜歡與回覆是我最大的動力-_-
交流羣:493180098