我刚刚开始使用带有Redux的normalizr而且我一直困在看起来像是一个简单的问题,但我可能做错了。所以我想像这样规范化一个数组:
{
articles: [
{id: 1, someValue: 'test'},
{id: 2, someValue: 'test2'}
]
}
进入这样的结构:
{
result: {
articles: [1,2]
},
entities: {
articles: {
1: {someValue: 'test'},
2: {someValue: 'test2'}
}
}
}
我试过这样做:
const article = new Schema('articles');
responce = normalize(responce, {
articles: arrayOf(article)
});
但是这给了我一个看起来像这样的结构:
{
articles: {
entities: {},
result: {
0: {someValue: 'test'},
1: {someValue: 'test2'}
}
}
}
现在没有文章ID数组。我假设我在这里遗漏了一些东西:
article.define({
...
});
但在这个简单的案例中无法确定需要去哪里
答案 0 :(得分:2)
您不必定义文章。确保您已正确导入normalizr
的所有内容。我尝试了你的代码,它给了我预期的结果:
import { normalize, Schema } from 'normalizr';
let response = {
articles: [
{ id: 1, someValue: 'test' },
{ id: 2, someValue: 'test2' }
]
};
const article = new Schema('articles');
response = normalize(response, {
articles: [article]
});
console.log(response);
输出:
{
result: {
articles: [1,2]
},
entities: {
articles: {
1: {someValue: 'test'},
2: {someValue: 'test2'}
}
}
}