我刚刚开始使用 Realm IO for React Native,我从以下示例代码开始:
const Realm = require('realm');
class ReactNative_GrammarApp extends Component {
render() {
let realm = new Realm({
schema: [{name: 'Dog', properties: {name: 'string'}}]
});
realm.write(() => {
realm.create('Dog', {name: 'Rex'});
realm.create('Dog', {name: 'Bert'});
realm.create('Dog', {name: 'Sam'});
realm.create('Dog', {name: 'John'});
realm.create('Dog', {name: 'Simon'});
realm.create('Dog', {name: 'Larry'});
realm.create('Dog', {name: 'Seymor'});
});
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Count of Dogs in Realm: {realm.objects('Dog').length}
</Text>
</View>
);
}
}
我的问题是,每次我在模拟器中刷新应用程序时,计数都会增加 7。我可以看到为什么会在代码中发生这种情况,但是我将如何创建一个每次刷新应用程序时大小不会翻倍的数据库?我的经验是像MySQL这样的东西,所以这对我来说很奇怪。
通过开发人员菜单刷新的行为有点像杀死应用程序并再次打开它。每次渲染组件时,您都会将这些元素再次写入数据库。当然,每次打开应用程序时它都会呈现。 (它始终是相同的数据库。应用程序启动时不会重新创建数据库!
附加评论:你永远不会在渲染函数中向数据库写入一些东西。