Rails / React: хранение предметов "Todo" в состоянии React? - PullRequest
0 голосов
/ 30 октября 2019

Так что я работаю над списком React "Todo" в качестве первого проекта React, я использую Rails в качестве бэкэнда API (строго принимая и отправляя обратно .json), я довольно хорошо знаком с Rails или, по крайней мере, с основами.

В настоящее время у меня есть несколько компонентов для обработки фактического «Списка». Это родительский компонент ListContainer (содержит состояние для «списков», которое представляет собой массив списков), а также все функции добавления / обновления / удаления / индекса (начальное состояние списков).

Наряду с некоторымидочерние компоненты (ListForm и List), оба довольно понятны. List является тупым компонентом, просто содержащим заголовок и описание List, а ListForm является реальной формой для отправки нового списка.

Я использую axios, и до сих пор Create / Index / Update / Delete отлично работают дляСписки. Однако я сталкиваюсь с проблемой неуверенности в том, как обращаться с самими элементами списка. В настоящее время на стороне рельсов Списки has_many list_items и list_items belong_to list`.

Таким образом, рельсы имеют всю сторону отношений застегнутой вверх ... но я действительно не уверен, как обрабатывать фактические элементы на стороне javascript(для каждого списка).

Мое первое первоначальное предположение состояло в том, чтобы переключить немой компонент «Список» на интеллектуальный компонент, который обрабатывает состояние, в этом состоянии был бы массив «list_items», которые принадлежат этому конкретному списку. Когда список загружен, я представляю, как axios выполняет запрос GET для списка элементов внутри компонента. И затем, в основном, обработка добавления / удаления / обновления аналогична тому, как компонент ListContainer обрабатывает его для списков (но вместо этого делает компонент «Список» фактическим контейнерным компонентом для ListItems (который в настоящее время является «немым компонентом»)

Имеет ли это смысл? Я, честно говоря, все еще довольно нов, чтобы реагировать, так что обработка отношений на стороне интерфейса - это то, с чем я еще не знаком. Но сохранение состояния внутри дочернего элемента, который "принадлежит_" родительскому состоянию / компоненту, изначально имеет смысл? Если я не переосмыслил это?

1 Ответ

1 голос
/ 30 октября 2019

Я думаю, что предложенное вами решение имеет смысл. Следуя вашему шаблону, у вас, вероятно, будет другой компонент, ListItem, и вы отобразите состояние listItems в List и отобразите ListItem для каждого элемента.

При этом многие люди, которые учатся реагировать, имеют тенденцию чрезмерно усложнять его, поскольку слишком много компонентов / разных файлов взаимодействуют. Когда-то сообщество React поощряло это, но с тех пор они отказались от этого. Многие люди сейчас считают наличие презентационных компонентов (или «тупых» компонентов, как вы их называете) антипаттерном. См., Например, это примечание от Дана Абрамова введите описание ссылки здесь

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