Мне известно о «священных» данных и о том, насколько опасными они могут стать при неправильной обработке;вот почему в моем приложении я сейчас нахожусь в положении, когда мне нужно обрабатывать вложенный длинный JSON-объект (который представляет состояние моего приложения), и мне уже становится головной болью входить и выходить из узлов / значений, которые необходимобыть исправленоЯ думал о включении Immutable.js
.Теперь возникает вопрос: как мне адаптировать мои редукторы, действия, состояние и т. Д.?
Вот выдержка из моего состояния, когда оно исходит из базы данных MongoDB
:
"shops": [
{
"shopId": "5a0c67e9fd3eb67969316cff",
"picture": "http://placehold.it/150x150",
"name": "Zipak",
"email": "leilaware@zipak.com",
"city": "Rabat",
"location": {
"type": "Point",
"coordinates": [
-6.74736,
33.81514
]
}
},
{
"shopId": "5a0c6b55fd3eb67969316d9d",
"picture": "http://placehold.it/150x150",
"name": "Genekom",
"email": "leilaware@genekom.com",
"city": "Rabat",
"location": {
"type": "Point",
"coordinates": [
-6.74695,
33.81594
]
}
},
...
Когдазапускается определенное действие (конечный пользователь нажимает кнопку «Мне нравится»), мне нужно добавить атрибут к связанному Shop
объекту, чтобы оно выглядело так:
{
"shopId": "5a0c67e9fd3eb67969316cff",
"picture": "http://placehold.it/150x150",
"name": "Zipak",
"email": "leilaware@zipak.com",
"city": "Rabat",
"liked": true,
"location": {
"type": "Point",
"coordinates": [
-6.74736,
33.81514
]
}
},
Теперь,Мне удается добавить атрибут liked
к отдельному объекту Shop
, но когда я хочу изменить / изменить состояние (группа всех объектов Shop
), я получаю дублированный объект (новый с * 1015).* атрибут и старый).Чтобы избежать этой путаницы, я хочу обработать эти операции, используя Immutable.js
, чтобы убедиться, что все чисто и правильно.
С чего начать?Преобразовать ли штат в карту Immutable.js
?Сообщение