Как обрабатывать древовидные объекты в редукторах Redux?

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

Давайте возьмем комментарии Reddit в качестве примера: каждый комментарий может иметь дочерние комментарии, которые могут иметь комментарии сами и т. Д. По соображениям упрощения, комментарий представляет собой запись типа{id, pageId, value, children}, сpageId будучи страницей Reddit.

Как можно смоделировать редуктор вокруг этого? Я думал о том, чтобы редуктор был картой -> id комментариев, где вы можете фильтровать по странице, используяpageId.

Проблема в том, что, например, когда мы хотим добавить комментарий к вложенному: нам нужно создать запись в корне карты, а затем добавить ее идентификатор в свойстве родительских детей. Чтобы отобразить все комментарии, нам нужно получить все из них, отфильтровать те, которые у нас есть вверху (которые будут сохранены в редукторах страниц, например, в виде orderList), а затем выполнить итерацию по ним, выбирая объекты комментариев, когда мы встречаем детей с помощью рекурсии.

Есть ли лучший подход, чем это, или это недостатки?

Ответы на вопрос(2)

Ваш ответ на вопрос