【发布时间】:2018-09-29 07:45:37
【问题描述】:
我的 api 的当前响应如下:
[
{
"device_id": "1234",
"network_status": "Offline",
"status": "Yes",
"frequency": 50,
},
{
"device_id": "12345",
"network_status": "online",
"status": "no",
"frequency": 123,
},
{
"device_id": "12346",
"network_status": "online",
"status": "no",
"frequency": 423,
},
]
使用最新的文档: https://github.com/paularmstrong/normalizr/blob/master/docs/api.md#arraydefinition-schemaattribute
我了解这些文档已更新,因此查看堆栈上的其他问题我无法找到类似的示例。 “responseData”包含来自 api 的响应,它是一个对象数组。 [{},{},...]
我的代码是
import { schema } from 'normalizr';
const deviceid = new schema.Entity('device_id');
const arrayOfDevices = new schema.Array({
device_id : deviceid,
})
normalize(responseData, arrayOfDevices)
我想得到以下输出。以 device_id 作为每个对象的键的实体对象。
{
entities: {
device_id: {
'1234' : {
.....
},
'12345' : {
.....
} ,
'123456' : {
.....
}
}
},
result: [
['1234','12345','123456'],
]
}
但是,我似乎只是得到了一个空实体的以下响应,而其他所有内容都被推入结果中
{
entities: {},
result: [
{
"device_id": "1234",
"network_status": "Offline",
"status": "Yes",
"frequency": 50,
},
{
"device_id": "12345",
"network_status": "online",
"status": "no",
"frequency": 123,
},
{
"device_id": "12346",
"network_status": "online",
"status": "no",
"frequency": 423,
},
]
}
我的 normalizr 代码似乎缺少什么?
【问题讨论】:
标签: reactjs redux normalization normalizr