У меня есть база данных Firebase Realtime, подобная этой.
myRoot
|--- mykey1
| |---myValue: 1
|
|--- mykey2
| |---myValue: 0
|
|--- mykey3
|---myValue: 2
Мне нужно увеличить все эти значения на единицу и получить следующий вывод.
myRoot
|--- mykey1
| |---myValue: 2
|
|--- mykey2
| |---myValue: 1
|
|--- mykey3
|---myValue: 3
Как я могу сделать это с помощью цикла?Или каков наилучший способ сделать это в React Native?
Реальная вещь, которую я хочу, это это.Давайте подумаем, у меня есть домашний экран.Имеет кнопку «Список значений».Когда я щелкаю, я перехожу на следующую страницу (стековый навигатор) и там отображаются значения myKey1, myKey2, myKey3.Это плоский список.Давайте подумаем, что на втором экране есть кнопка с именем «Приращения значений».Когда я нажал его, я хочу увеличить значения и вернуться к начальному экрану.
Я пробовал что-то подобное.
let arr = ['myKey1' , 'myKey2' , 'myKey3']
try {
for(let i=0; i<arr.length; i++) {
let ref = firebase.database().ref(myRoot).child(arr[i]);
ref.transaction( function(myValue) {
return (myValue || 0) + 1;
})
}
this.props.navigation.goBack();
}
catch(error) {
console.log(error));
}
Он изменяет значения в базе данных какЯ жду.Но после выполнения выдается следующее желтое предупреждение:
Невозможно вызвать setState (или forceUpdate) для несмонтированного компонента.Это не работает, но это указывает на утечку памяти в вашем приложении.Чтобы исправить, отмените все подписки и асинхронные задачи в методе componentWillUnmount
Это образец модели, объясняющий, что мне нужно.
Как решить эту проблему?