javascript — расширение и отображение массива в asyncstorage в React-native

Расширение и отображение массива в asyncstorage в React-native

Есть несколько проблем с вашим кодом, во-первых, я хотел бы сохранить availableActivities в состоянии вашего компонента, если вы хотите охватить его таким образом. Во-вторых, когда вы вызываете функцию async вы должны использовать await для своих обещаний, в-третьих, и самое важное, AsyncStorage.getItem(this.availableActivities) это похоже на опечатку, но AsyncStorage значений ключей AsyncStorage должны быть строками.

Вот обновление вашего кода, которое, я думаю, обеспечит необходимую вам функциональность:

 addAvailableActivity = async () ={amp}gt; { try { let activities = await AsyncStorage.getItem('availableActivities') let { newActivity } = this.state if (activities != null) { activities = JSON.parse(activities) activities.push(newActivity) await AsyncStorage.setItem( 'availableActivities', JSON.stringify(activities) ) } } catch (error) { console.warn(error) } } displayAvailableActivities = () ={amp}gt; { let activities = await AsyncStorage.getItem('availableActivities') console.warn(JSON.parse(activities)) } 

обратите внимание, что я изменил объявления функций, в этом нет необходимости, но это предотвращает их привязку в вашем конструкторе. async / await — это альтернативный синтаксис для .then который намного чище и проще для чтения. Чтобы проверить, вернул ли AsyncStorage значение, лучше всего проверить его на null и, наконец, я исправил опечатку в вашей последней функции. Дайте мне знать, если у вас есть какие-либо вопросы или я пропустил оценку

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector