Обновление нумерации страниц в нормальном состоянии - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в Redx и пытаюсь не запутаться, работая с нормализованными состояниями.

У меня есть две страницы: сообщения и пользователи.Каждая страница имеет такие функции, как бесконечные операции прокрутки, обновления и перебора.

Я уже разработал API-интерфейс, который обладает всеми необходимыми мне функциями.

Я создаю форму состояния, подобную этой

{
    entities: {
        posts: {
            "1": {
                id: 1,
                idUser: 1,
                title: "Good day"
                image: "/images/goodday.png"
            },
            "2" : {
                id: 2,
                idUser: 1,
                title: "Nice breakfast!",
                image: "/images/breakfast.png"
            }
        },
        postComments: {
            "5": { 
                id: 5, 
                idUser : 2, 
                idPost: 1, 
                comment: "Nice!" 
            }
        },
        users: {
            "1": { id: 1, name: "Richard" },
            "2": { id: 2, name: "Marco" }
        }
   }
   paginator: {
       posts: {
           page: 1,
           loading:false,
           refreshing: false,
           error: ''
       },
       users: {
           page: 1,
           loading:false,
           refreshing: false,
           error: ''
       }
   }
}

Вопросы:

1


Предположим, что первая страница посвящена сообщениям, в componentDidMount Я выбираю сообщения.

Я окажусь в состоянии, подобном тому, которое я описал, где entities.users уже заполнен пользователем 1, поскольку полученные мной сообщения принадлежат пользователю с идентификатором 1.

Следующее я 'm переход на страницу, где я показываю пользователей.Так что в componentDidMount я выбираю пользователей.

Вероятно, из загрузки API я снова скачаю пользователя с идентификатором 1.

Я всегда объединяю результаты в состоянии с newState = merge({}, state, entities); с помощью библиотеки loadash.

Это правильно?В большом приложении это сводится к объединению многих элементов, которые уже присутствуют в магазине.

2


Когда кто-то запрашивает обновление, предположим, что обновление страницы пользователя, яинициализация относительного paginator с его начальным состоянием, и я очищаю entities.users часть состояния сущностей.

Затем, как только API получен, я заполняю entities.users новыми результатами.

Теперь, если я вернусь на страницу сообщений, может случиться так, что в сообщении больше не будет относительного пользователя в магазине.

Как правильно выполнять операции обновления такого типа?

Спасибо, и извините за плохой английский:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...