如何为 Redux ORM 构建模型
How to structure the Model for Redux ORM
我从服务器收到类似于以下格式的响应。
{"channels": [{"name":"discovery", "id":"12",
"details":{"src":"link", "logo":"imagelink"}}]
我打算使用 Redux-Orm 来管理商店中的状态。当我尝试定义模型时,我感到困惑。一种方法是定义 Channel Model,name 和 id 作为属性,details 作为一对一的映射,Details Model 带有 src,logo 属性,如下所示。
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()
}
或者我应该定义一个模型 class 来表示响应吗?如果有,如何定义和访问?
如果你想要一个 Detail
模型,你的后端必须像 Channel
模型一样用 id
识别它,然后你可以做一个 oneToOne
关系。
也就是说,使用一个或两个模型完全取决于它们在您的应用程序中的交互方式,并且可能会增长。如果您的 details
领域不会增长太多,我完全个人的观点是将其保留在单个 Channel
模型中。您可以通过 channel.details
或 channel.details.src
透明地访问它。
IMO,oneToOne
像这样的简单关系不需要特定的模型。
我从服务器收到类似于以下格式的响应。
{"channels": [{"name":"discovery", "id":"12",
"details":{"src":"link", "logo":"imagelink"}}]
我打算使用 Redux-Orm 来管理商店中的状态。当我尝试定义模型时,我感到困惑。一种方法是定义 Channel Model,name 和 id 作为属性,details 作为一对一的映射,Details Model 带有 src,logo 属性,如下所示。
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()
}
或者我应该定义一个模型 class 来表示响应吗?如果有,如何定义和访问?
如果你想要一个 Detail
模型,你的后端必须像 Channel
模型一样用 id
识别它,然后你可以做一个 oneToOne
关系。
也就是说,使用一个或两个模型完全取决于它们在您的应用程序中的交互方式,并且可能会增长。如果您的 details
领域不会增长太多,我完全个人的观点是将其保留在单个 Channel
模型中。您可以通过 channel.details
或 channel.details.src
透明地访问它。
IMO,oneToOne
像这样的简单关系不需要特定的模型。