Так что эта проблема немного сводит меня с ума, потому что я просто не могу понять это, я запускаю очень простую функцию, вложенную в другую, когда я выполняю console.log когда-нибудь, что работает, как ожидалось, но когда я реализую FirebaseОн начинает повторять один и тот же код снова и снова, затем мой компьютер останавливается.
upvote = index => {
fire
.database()
.ref(`/feed/${this.state.keys[index]}`)
.on('value', snapshot => {
var obj = snapshot.val().score;
this.setState({ score: obj }, () => {
console.log(typeof this.state.score);
console.log(this.state.score + 1);
fire
.database()
.ref(`/feed/${this.state.keys[index]}`)
.update({
score: this.state.score + 1,
});
});
});
};
Цель здесь - повысить голосование по сообщениям, таким как reddit, что я делаю, вероятно, не правильно, ноВот логика, стоящая за этим:
<Button
onClick={() => this.upvote(index)}
>
У меня есть этот массив this.state.list, где хранятся все сообщения, я беру index
сообщения, которое хочу поднять, затем передаю егоfunction.
Внутри функции я запускаю быструю выборку действительного результата, когда дБ отвечает, проверяет тип этой переменной, как и ожидалось, это number
.
Выполнение console.log(this.state.score + 1);
возвращаетточное значение, но при попытке подтолкнуть его, я получаю огромные цифры, такие как 2983 при перезапуске приложения ..
Пожалуйста, кто-нибудь помогите