Обновить массив состояний в React Native - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь заполнить пустой массив состояний элементами базы данных Firebase

retrieveCategories = async () => {
 const { categories } = this.state;
 const { eventTypes } = constants;
 let count = eventTypes;

 const snapshot = await firebase.database().ref('/categories').once('value');

 while (count !== -1) {
   const cat = snapshot.val()[count];
   this.setState(prevState => ({ categories: [...prevState.categories, cat] }));
   count -= 1;
 }

 console.log(categories);
}

Проблема в том, что что бы я ни делал, массив не обновляется сам, что доказано, когда console.log(categories); выдает только [].

Что я могу сделать, чтобы решить эту проблему?

1 Ответ

1 голос
/ 08 мая 2020

Вы можете сделать это так

let {categories} = this.state
categories.push(cat)
this.setState({categories})

Также console.log (this.state.categories), потому что состояние обновляется после this.setState.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...