[英]Redux FlatList: update partially data
如何使用Flatlist和React-Native在Redux中部分更新我的數據? 我已經嘗試了幾個“不變”庫,但是沒有一個能完美地工作。
Redux商店:
FlatListData: [ { a: 1, aa: 11 }, { b: 2, bb: 22 }, { c: 3, cc: 33 }, { d: 4, dd: 44 }, ];
已下載新數據:
updatedData: [ { b: 2, bb: 44 }, { c: 6, cc: 33 }, { e: 8, ee: 90 }, ];
減速器的外觀如何?
const INITIAL_STATE = { FlatListData: [ { a: 1, aa: 11 }, { b: 2, bb: 22 } ] };
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case UPDATE_RATE:
return {
...state,
FlatListData: ??? <---
};
}}
非常感謝您的幫助!
如果要合並兩個(舊的和新的),則可以展開數組,並向其中添加更新的列表,如下所示:
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case UPDATE_RATE:
return {
...state,
FlatListData: [
...state.FlatListData,
...action.updatedData,
],
};
}
}
如果需要替換現有值,則需要一個公用鍵(一些ID)來標識現有記錄並對其進行過濾。 假設您的數組對象具有一個id:
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case UPDATE_RATE:
return {
...state,
FlatListData: [
...state.FlatListData.filter((x) =>
!action.updatedData.find((y) => y.id === x.id)),
...action.updatedData,
],
};
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.