1
전체 :Redux Reducer의 정규화 된 엔티티 데이터를 참조하여 수정하는 방법
저는 redux reduder를 처음 접했고 대부분의 대답은 normalizr.js를 가리 킵니다. 촬영 예와 같이 :
const blogPosts = [
{
id : "post1",
author : {username : "user1", name : "User 1"},
body : "......",
comments : [
{
id : "comment1",
author : {username : "user2", name : "User 2"},
comment : ".....",
},
{
id : "comment2",
author : {username : "user3", name : "User 3"},
comment : ".....",
}
]
},
{
id : "post2",
author : {username : "user2", name : "User 2"},
body : "......",
comments : [
{
id : "comment3",
author : {username : "user3", name : "User 3"},
comment : ".....",
},
{
id : "comment4",
author : {username : "user1", name : "User 1"},
comment : ".....",
},
{
id : "comment5",
author : {username : "user3", name : "User 3"},
comment : ".....",
}
]
}
// and repeat many times
]
내가 아래로 스키마를 정의 :
var authorSchm = new schema.Entity("authors", {}, {idAttribute: "username"});
var commentSchm = new schema.Entity("comments", {author:authorSchm})
var commentList = [commentSchm];
var postSchm = new schema.Entity("posts", {author:authorSchm, comments:commentList});
var postList = [postSchm];
var normalizedData = normalize(blogPosts, postList);
console.log(JSON.stringify(normalizedData, null, 4));
그리고이 같은 결과를 얻을 : 내가 돌아 오는 감속기에서이 정규화 된 데이터를 어떻게 사용합니까 궁금
{
"entities": {
"authors": {
"user1": {
"username": "user1",
"name": "User 1"
},
"user2": {
"username": "user2",
"name": "User 2"
},
"user3": {
"username": "user3",
"name": "User 3"
}
},
"comments": {
"comment1": {
"id": "comment1",
"author": "user2",
"comment": "....."
},
"comment2": {
"id": "comment2",
"author": "user3",
"comment": "....."
},
"comment3": {
"id": "comment3",
"author": "user3",
"comment": "....."
},
"comment4": {
"id": "comment4",
"author": "user1",
"comment": "....."
},
"comment5": {
"id": "comment5",
"author": "user3",
"comment": "....."
}
},
"posts": {
"post1": {
"id": "post1",
"author": "user1",
"body": "......",
"comments": [
"comment1",
"comment2"
]
},
"post2": {
"id": "post2",
"author": "user2",
"body": "......",
"comments": [
"comment3",
"comment4",
"comment5"
]
}
}
},
"result": [
"post1",
"post2"
]
}
및 combineReducers? 그리고 참조 문자열에 따라 다음 수준의 데이터를 가져 오려면 어떤 엔터티를 사용해야하는지 어떻게 알 수 있습니까 (예 : "post1"을 얻을 때 게시물 개체 및 내부를 가져 오기 위해 엔티티로 이동해야한다는 것을 어떻게 알 수 있습니까? post1 객체, 그 comment1, comment2 ..에 대해 수행하는 방법)
감사합니다. 내 blogposts 예제에 따라 lil bit detail을 주관적으로 말할 수 있습니까? – Kuan