Xav*_* A. 5 javascript realm react-native
在 React Native 应用程序的上下文中,仅在本地使用 Realm(因此目前没有领域对象服务器)。使用何时打开一个领域Realm.open({schema: [Car, Person]})和创建一个新的领域实例之间有什么区别
new Realm({schema: [Car, Person]});?
看起来Realm.open只是一个确保同步完成的回调,所以只需要同步领域?
到目前为止,这是我发现的:
根据文档参考的 Realm.open意思是“使用承诺异步打开一个领域。如果领域被同步,它将在可用之前完全同步。” 这是js文档中显示的方式
根据文档参考中的构造函数,new Realm将创建一个新的领域实例 [...]。如果 Realm 尚不存在 [...],则此构造函数将创建它。否则,实例将访问现有的 Realm
在 React 示例中,他们使用新的:https : //github.com/realm/realm-js/blob/master/examples/ReactExample/components/realm.js
小智 8
您有什么特定的用例吗?否则在本机反应中,到目前为止我还没有使用 Realm.open。他们的方式我见过大多数人接近架构是有一个名为realm.js的文件,其中定义了模式并像这样导出一个新的Realm
class ShoppingCartItem extends Realm.Object{}
ShoppingCartItem.schema = {
name: 'ShoppingCartItem',
primaryKey: 'ordernumber',
properties: {
ordernumber: 'string',
quantity: 'int',
unitPrice: 'double'
}
}
export default new Realm({schema: [User, LastViewedProduct, ShoppingCartItem]});
Run Code Online (Sandbox Code Playgroud)
然后有另一个名为 realmTasks.js 的文件,您可以在其中导入该领域对象并在其上定义操作。如果您需要本地状态中的领域对象来注册更改,您可以定义一个回调并将领域引用作为参数提供给它,例如
export function addShoppingCartItem(ordernumber, quantity, unitPrice, callback){
realm.write(() => {
realm.create('ShoppingCartItem', {
ordernumber: ordernumber,
quantity: quantity,
unitPrice: unitPrice
});
})
return callback(realm);
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否完全回答了您的问题或对您有用,但我希望这能给您一个提示:)
| 归档时间: |
|
| 查看次数: |
4749 次 |
| 最近记录: |