Как структурировать модель для Redux ORM - PullRequest
0 голосов
/ 05 октября 2018

Я получаю ответ, похожий на следующий формат, с сервера.

{"channels": [{"name":"discovery", "id":"12", 
              "details":{"src":"link", "logo":"imagelink"}}]

Я планирую использовать Redux-Orm для управления состоянием в магазине.Когда я пытаюсь определить модель, у меня возникают путаницы.Одним из способов является определение модели канала с именем и идентификатором в качестве атрибутов, подробностей как сопоставление один к одному и сведений о модели с использованием атрибутов src, логотипов, как показано ниже.

const channel = class Channel extends Model {};
channel.fields = {
   name: attr(),
   id: attr(),
   details: oneToOne('details', 'channels')
}

const details = class Details extends Model {};
details.fields = {
   src: attr(),
   logo: attr()
}

Или я должен определить один класс модели, который представляет ответ как есть?Если да, то как определить и получить к нему доступ?

1 Ответ

0 голосов
/ 12 октября 2018

Если вы хотите иметь модель Detail, ваш бэкэнд должен идентифицировать ее с id, как модель Channel, и тогда вы можете установить отношение oneToOne.

Это существоПри этом использование одной или двух моделей полностью зависит от того, как они будут взаимодействовать в вашем приложении и могут расти.Если ваше поле details не будет расти намного больше, моя сугубо личная точка зрения будет заключаться в том, чтобы сохранить его в единой модели Channel.Вы бы получили к нему прозрачный доступ через channel.details или channel.details.src.

IMO, oneToOne Простые отношения, подобные этому, не нуждаются в конкретной модели.

...