TypeError: undefined не является объектом - AsyncStorage - PullRequest
0 голосов
/ 18 марта 2020

Привет, я не могу решить эту проблему - я использую AsyncStorage в компоненте React Native для загрузки строк пути к файлу. Я получаю сообщение об ошибке ниже, когда компонент монтируется и не видит, что я делаю здесь неправильно, поскольку это в значительной степени следует за документированными примерами. любая помощь будет оценена.

"Ошибка типа: undefined не является объектом (оценка '_asyncStorage.AsyncStorage.getKeys')

вот мой код:

import React, { Component } from 'react';
import BasicCard from './cards'
import {AsyncStorage} from '@react-native-community/async-storage'
import { 
    StyleSheet,    
    ScrollView,  
  } from 'react-native';


class NewPost extends Component{

  state={
    content:[]
  }

  componentDidMount(){
    this.getContent(this.getKeys())
  }

  getKeys = async () => {
    try{
      return await AsyncStorage.getKeys()
    }catch (e) {
      alert(e)
    }
  }

  getContent = async (keys) => {
    try{
      await AsyncStorage.multiGet(keys, store)
      this.setState({content:store})
    } catch (e) {
      alert ( e )
    }
  }



  render(){

    return( 
      <ScrollView style={styles.container}>
        {this.state.content.map((result,i,item) => (
          <BasicCard 
            imgName={item[i][0]}
            imgPath={item[i[1]]} />
        ))}
      </ScrollView>
    )
  }
}

export default NewPost;

const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'column',
    backgroundColor: 'black',
  },   

});

1 Ответ

0 голосов
/ 19 марта 2020

В asyncStorage нет функции с именем getkeys

обратитесь по этой ссылке, чтобы узнать о доступных функциях в asyn c хранилище

getKeys = async () => {
    try{
      return await AsyncStorage.getKeys()
    }catch (e) {
      alert(e)
    }
  }

изменить на это

getKeys = async () => {
    try{
      return await AsyncStorage.getAllKeys()
    }catch (e) {
      alert(e)
    }
  }
...