mobx 在对象深处丢失属性
mobx losing properties deep in an object
提前为这个糟糕的问题道歉。我更希望该领域的专家知道我做错了什么白痴事情,如果您需要更多信息,请直接询问!
我有一个有点复杂的对象需要使用 mobx 存储。
export default class Field {
@observable public key: string;
@observable public fieldCoordinates: Coords;
@obser... more and more properties.
坐标看起来像
export default class Coords {
@observable public id: string;
@observable public coordinates: Array<LatLng>;
}
和经纬度
export default class LatLng {
@observable public latitude: number;
@observable public longitude: number;
}
我店里有
@observable public fields: Array<Field> = new Array<Field>();
在 Save
方法中我使用
store.save("fields", toJS(this.fields));
然而,当我尝试使用 coordinates
对象来布置我的地图时,出现错误
Error while updating property 'coordinates' of view managed by: AIRMapPolygon
我使用这种方法获取数据(在商店中)
@computed public get DataSource(): Array<LatLng> {
return this.field.fieldCoordinates.coordinates.slice();
}
然而,当我检查 fields
数组时,它已被从 LatLng 数组中删除。 (点列表在一个数组中有 9 个东西,但是数据不见了(我打开了第一个元素,它只有 proto
而不是数据。)
我想我做错了什么,或者使用了错误的类型或一些简单的事情......你能引导我朝着正确的方向前进吗?
我意识到这类问题在这里不太容易处理...
但如果你是未来遇到类似问题的人,那么我通过从坐标数组和对象中删除 @observable
来 'fixed' 它。
很明显,这会停止这些对象的 mobx 状态管理,但这对我来说很好,现在它对我有用。
更多消息:
如果事实上一个新要求意味着我确实需要这些是可观察的。
我现在有了数组的这一行
public readonly coordinates = observable<LatLng>([]);
我已经解决了我之前的问题,我现在认为这个问题与使用一些 setState()
有关,我没有完成迁移到 mobx 的地方,这打破了我的页面和期望。
不要混用不同的状态管理思想!
提前为这个糟糕的问题道歉。我更希望该领域的专家知道我做错了什么白痴事情,如果您需要更多信息,请直接询问!
我有一个有点复杂的对象需要使用 mobx 存储。
export default class Field {
@observable public key: string;
@observable public fieldCoordinates: Coords;
@obser... more and more properties.
坐标看起来像
export default class Coords {
@observable public id: string;
@observable public coordinates: Array<LatLng>;
}
和经纬度
export default class LatLng {
@observable public latitude: number;
@observable public longitude: number;
}
我店里有
@observable public fields: Array<Field> = new Array<Field>();
在 Save
方法中我使用
store.save("fields", toJS(this.fields));
然而,当我尝试使用 coordinates
对象来布置我的地图时,出现错误
Error while updating property 'coordinates' of view managed by: AIRMapPolygon
我使用这种方法获取数据(在商店中)
@computed public get DataSource(): Array<LatLng> {
return this.field.fieldCoordinates.coordinates.slice();
}
然而,当我检查 fields
数组时,它已被从 LatLng 数组中删除。 (点列表在一个数组中有 9 个东西,但是数据不见了(我打开了第一个元素,它只有 proto
而不是数据。)
我想我做错了什么,或者使用了错误的类型或一些简单的事情......你能引导我朝着正确的方向前进吗?
我意识到这类问题在这里不太容易处理...
但如果你是未来遇到类似问题的人,那么我通过从坐标数组和对象中删除 @observable
来 'fixed' 它。
很明显,这会停止这些对象的 mobx 状态管理,但这对我来说很好,现在它对我有用。
更多消息: 如果事实上一个新要求意味着我确实需要这些是可观察的。
我现在有了数组的这一行
public readonly coordinates = observable<LatLng>([]);
我已经解决了我之前的问题,我现在认为这个问题与使用一些 setState()
有关,我没有完成迁移到 mobx 的地方,这打破了我的页面和期望。
不要混用不同的状态管理思想!