Как использовать async / await для получения значения из AsyncStorage в реагировать нативно с помощью функции

function compare(propName) {
    return function(a,b) {
        if (a[propName] < b[propName])
            return -1;
        if (a[propName] > b[propName])
            return 1;
        return 0;
    };
}

objs.sort(compare("last_nom"));
2
задан Vishal Patoliya ツ 16 January 2019 в 08:20
поделиться

3 ответа

Вам нужно использовать ключевое слово async в вашей функции следующим образом.

    import { AsyncStorage } from 'react-native';
import prefskey from '../utils/constants/prefskeys';

const prefsnamager = {

    setValue: function (key, value) {
        AsyncStorage.setItem(key, value)
    },

    getValue: async (key) => {
        let value = '';
        try {
            value = await AsyncStorage.getItem(key) || 'none';
        } catch (error) {
            // Error retrieving data
            console.log(error.message);
        }
        return value;
    }
}
export default prefsnamager;

вызывающая функция

_handlePress = () => {
        prefsManager.setValue(prefskey.username, this.state.username)

        console.log("username =>>" , prefsManager.getValue(prefskey.username));

     }
0
ответ дан Rishabh Rawat 16 January 2019 в 08:20
поделиться
  1. Установить значение в хранилище
AsyncStorage.setItem('data','Read Data')
  1. Получить значение из хранилища
constructor(props) {
    super(props)       

    this.state = {};
    let self=this;

    //this function is called everytime , when you visit this screen.
    this.__didFocusSubscription = this.props.navigation.addListener('didFocus',payload => {
        AsyncStorage.getItem('data').then((value)=>{
            if(value==null){
                self.setState({count:'no data found'})
            }
            else{
                self.setState({count:value})
            }
        })
    });       
}
0
ответ дан barbsan 16 January 2019 в 08:20
поделиться

На самом деле, это похоже на localStorage в сети, но с небольшой разницей. при получении предмета он действует асинхронно. обратите внимание на ниже:

AsyncStorage.setItem('key', value);

Но в получении это как ниже:

AsyncStorage.getItem('key')
  .then( value => console.log(value) );
0
ответ дан 16 January 2019 в 08:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: