我正在尝试直接将API响应映射到我的Redux-Orm模型。我有两个模型:
Product hasMany ProductProperties
ProductProperty belongsTo Product
我收到的API响应是:
{
products: [
{name: 'P1', id: 1},
{name: 'P2', id: 2}
],
product_properties: [
{name: 'Test1', id: 10, product_id: 1},
{name: 'Test2', id: 11, product_id: 1},
{name: 'Test3', id: 12, product_id: 2}
{name: 'Test4', id: 13, product_id: 2}
]
}
我可以调整API响应以匹配redux-orm。
我的问题是:
我想避免使用ProductProperty.first()。set({product:Product.first}) - 这是我不想明确设置关联(子记录)并让redux-orm自动推断它们
有没有办法可以指定redux-orm可以查找的外键?
答案 0 :(得分:1)
我建议你为你的API使用json api标准。
这样,在您的API返回中,您的products
会有一个relationships
密钥,可帮助您将其映射到included
product_properties
。类似的东西:
{
data: [
{
type: 'product',
id: 1,
name: 'P1',
relationships: [
product_property: [
{
data: {type: 'product_property', id: 10}
},
{
data: {type: 'product_property', id: 11}
}
]
]
},
{
type: 'product',
id: 2,
name: 'P2',
relationships: [
product_property: [
{
data: {type: 'product_property', id: 12}
},
{
data: {type: 'product_property', id: 13}
}
]
]
}
],
included: [
{type: 'product_property', name: 'Test1', id: 10},
{type: 'product_property', name: 'Test2', id: 11},
{type: 'product_property', name: 'Test3', id: 12}
{type: 'product_property', name: 'Test4', id: 13}
]
}
这样,您可以更轻松地创建一个标准API解析器,将您的json api资源映射到redux-orm存储。您为每个product
和每个product_property
创建一个redux-orm资源。比你循环产品relationships
并链接它们。
希望这会有所帮助。
最佳