Я пытаюсь обновить базу данных firebase на основе изменений состояния. Я хочу, чтобы каждый раз, когда я нажимал кнопку «Отправить», база данных обновлялась на основе местоположения индекса данных в базе данных.
onSubmit = () => {
const pkp = [...this.state.pkp];
const value = this.state.selectedOption2.value;
const index = pkp.indexOf({ value });
firebaseApp
.database()
.ref(`/${index}`)
.update({ pkp });
};
Вот моя структура базы данных Здесь мое представление базы данных firebase
Я попытался консольировать переменную одну за другой, и результат правильный, за исключением константный индекс = pkp.indexOf({значение}); результат равен -1, всякий раз, когда я меняю значение состояния, оно восстанавливается -1.
я добавляю некоторые изображения моей базы данных firebase, чтобы вы поняли. пожалуйста, сосредоточьтесь на const index = pkp.indexOf({ value }); В componentDidMount я импортирую базу данных, а затем помещаю ее в состояние pkp this.setState({pkp}). Итак this.state.pkp сама база данных.
вопрос в том, как мне получить индекс моей базы данных, которую я хочу поместить ref()
результат, который я хочу, когда const value = this.state.selectedOption2.value; изменится, ref() будет ref("/0"), then when const value = this.state.selectedOption2.value;` изменено во второй раз, ref() будет `ref("/1") и так далее.
Итак, indexOf ищет значение, но вы ищете это значение на всем объекте, вам нужно указать, где именно вы хотите искать это значение.
ты не решаешь мою проблему..





Как значение относится к базе данных в этой строке? константное значение = this.state.selectedOption2.value; Возможно, вам не нужно использовать pkp.id.indexOf({value}) или что-то подобное?