【发布时间】:2016-07-19 21:35:13
【问题描述】:
我有一个这样的模型,能够将详细信息字段存储为 JSON
class Person {
set details(data) { this._details = data ? JSON.stringify(data) : null; }
get details() { return this._details ? JSON.parse(this._details) : null; }
}
Person.schema = {
name: 'Person',
primaryKey: 'id',
properties: {
id: 'string',
name: 'string',
_details: { type: 'string', optional: true }
}
};
当我这样做的时候
realm.write(() => {
// this is a write block for some other objects,
// but at some point I need to find a person
let person = realm.objectForPrimaryKey('Person', id);
console.log(person);
});
它将注销一个 RealmObject 的实例,其中包含 _details 的 getter 和 setter,但 details 没有,所以它不是 Person 的实例,我在这里遗漏了什么吗?
我也尝试了class Person extends Realm.Object { ... },但没有任何改变。我阅读了documentation 并认为它应该以这种方式工作,我希望它可以正常工作,否则我将不得不更改很多代码。
更新
通过做临时修复(黑客)它
let _person = realm.objectForPrimaryKey('Person', id);
if (_person) {
let person = new Person();
_.assign(person, _person);
}
有更好的建议吗?
【问题讨论】:
标签: javascript react-native ecmascript-6 realm