老师,我想问关于state

来源:7-3 基于Redux+FlatList实现列表页数据加载(异步action与数据流,state树设计)

wangshun

2022-09-12

return {
…state,
[action.storeName]:{
…action.storeName,
items: action.items, //原始数据
isLoading:false
}
}

  1. …state 是把老的state保留 是否相当于

NSMutableDictionary * oldstate = [[NSMutableDictionary alloc] initWithCapacity:0];
NSMutableDictionary * newstate = @{“action.storeName”:@“value”}
[oldstate addEntriesFromDictionary:newstate];

2 . …action.storeName 是啥意思

oldstate:{
   "storeName1:{
    
   }
}

newstate:{
“storeName1”{
“storeName2storeName1”??? 我看到debug结果是把storeName的字符串拆分成每个字符生成个数组,这个是干嘛,没意义吧?debug生成的数组是 storename1:{ 0: ‘s’,1:“t”,2:“r”,3:“o”,4:“e”…}
}
}

3 我要把返回值合并到一个数组咋办

预期是:datalist[
{ storeName1:{xxx:xxx}}
{ storeName2:{xxx:xxx}}
{ storeName3:{xxx:xxx}}
]
我要做每个listitem上都是单独接口的,然后将数据合并后传给flatlist,咋写

case Types.REFRESH_SUCCESS:
return {
…state,
datalist:[
{[action.storeName]:{
…action.storeName,
items: action.items, //原始数据
isLoading:false
}}
],
[action.storeName]:{
…action.storeName,
items: action.items, //原始数据
isLoading:false
}
}

写回答

1回答

CrazyCodeBoy

2022-09-14

1.理解是正确的。
2.是延展操作符,意思是将里面的内容解构出来。
3.没太看懂。
0
2
wangshun
case Types.HOME_REFRESH_SUCCESS: return { ...state, "datalist":[ ...state["datalist"], { [action.storeName]:{ items: action.items, //原始数据 isLoading:false }} ], [action.storeName]:{ items: action.items, //原始数据 isLoading:false } }, 我这么写直接报错,没定义datalist,理论上这个不需要定义啊,就是个值合并
2022-09-15
共2条回复

RN入门到进阶,打造高质量上线App

解锁React Native开发应用新姿势,React Native新版本热门技术

3144 学习 · 3241 问题

查看课程