1

我从服务器收到类似于以下格式的响应。

{"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()
}

或者我应该定义一个代表响应的模型类吗?如果是这样,如何定义和访问它?

4

1 回答 1

1

如果你想要一个Detail模型,你的后端必须用一个id相似的Channel模型来识别它,然后你可以做一个oneToOne关系。

话虽如此,使用一个或两个模型完全取决于它们在您的应用程序中的交互方式,并且可能会增长。如果您的details领域不会增长太多,我完全个人的观点是将其保留在一个Channel模型中。您可以通过channel.detailschannel.details.src透明地访问它。

IMO,oneToOne像这样的简单关系不需要特定的模型。

于 2018-10-12T09:19:20.780 回答