假设我收到了API的回复:
{
name: 'Mat',
last_name: 'Kowalsky',
}
Person的界面如下:
{
name: string;
lastName: string;
children: Person[]
}
将一个模型转换为另一个模型的最佳位置在哪里?我应该这样做吗?
const setPerson: (state: State, person: any) => {
state.person = {
name: person.name,
lastName: person.last_name,
children: (person.children) ? person.children : []
}
}
或者像这样的吸气剂:
const getters = {
person: (state: State) => {
return {
name: state.person.name,
lastName: state.person.last_name,
children: (state.person.children) ? state.person.children : []
}
}
}
致谢
答案 0 :(得分:1)
在插入新人员时,该突变被调用一次。 吸气剂很可能经常被调用。
这就是为什么我要将转化放入突变中的原因。
答案 1 :(得分:0)
如果我必须选择,那是变异,但是我认为最好的方法是,因为您的商店依赖于您的api。
您可以将API的响应映射到您的Person,就像您的变异中已有一个Person对象一样。
承诺:
myPromise.then(res => ({ res.name, lastName: res.last_name }))
使用Rxjs:
myObservable.pipe(
map(res => ({ res.name, lastName: res.last_name }))
)
答案 2 :(得分:0)
在使用响应时,应使用突变。由于它不依赖于任何商店属性。
字母是依赖于另一个商店属性的字母,当商店属性发生更改时,getter会自动更改。因此,如果您的媒体资源与商店的其他媒体资源具有依赖性,那么最好使用 getters