2017-01-31 2 views
2

Я просто начать работу с Realm IO для React Native, и я начал со следующим примером кода:Realm для React Native IOS - дублировать базы данных, формируемые

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, поэтому для меня это довольно странно.

ответ

1

Обновление меню через меню проявляет себя как убийство приложения и его открытие снова. Каждый раз, когда компонент получает визуализацию, вы снова записываете эти элементы в свою базу данных. И из-за этого он получает визуализацию каждый раз, когда вы открываете приложение. (Это всегда одна и та же база данных. База данных get не воссоздана при запуске приложения!)

Дополнительный комментарий: вы никогда не будете когда-либо писать что-то в своей базе данных в функции рендеринга.

+0

Для сброса базы данных удалите приложение с устройства и переустановите приложение или проверьте документацию Realm о том, как удалить все элементы из базы данных. Также возможно удалить все «Собаки-Записи причины». –

+0

Если человек обычно не писал что-то в свою базу данных в функции рендеринга, не мог бы вы показать пример того, как они обычно пишут что-то в своей базе данных? –

+0

Вопрос не должен быть «как», он должен быть «когда». Вы будете записывать данные в базу данных о таких событиях, как пользователь, представляющий формулу, или вы получили ответ от запроса сервера или что-то в этом роде. –

Смежные вопросы