Используя базу данных области на узле, мне нужно изменить / обрезать значение свойства, например firstName
, когда Realm создает человека.
Однако, цитата в документах Realm привлекает мое внимание:
На данный момент поддержка определения моделей с помощью классов ограничена. Это
работает в React Native, но не в Node.
Я не уверен, что моя проблема в текущей версии царства v2.8.0
.
class Person {
set firstName(firstName) {
this._firstName = firstName.trim();
}
}
Person.schema = {
name: 'Person',
properties: {
firstName: 'string',
lastName: 'string'
}
};
// ---
realm.write(() => {
const john = realm.create('Person', {
firstName: ' John ', // <-- need to be trimmed on model
lastName: 'Smith'
});
});
Есть ли способ изменить значения свойств геттерами / сеттерами в модели? или есть другая альтернатива?
Другое соображение заключается в том, что Realm создает объекты из модели, и это также приводит к ошибке, если я изменяю их с помощью сеттеров или даже конструктора.
constructor() {
this.firstName = this.firstName.trim();
}
Невозможно изменить управляемые объекты вне транзакции записи.