加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 在AsyncStorage中使用setItem的正确方法

发布时间:2020-12-15 20:11:27 所属栏目:百科 来源:网络整理
导读:我想在AsyncStorage.getItem中使用AsyncStorage.setItem.如何以正确的方式做到这一点? 我的代码如下: createVehicle: function (vehicle,cb) { AsyncStorage.getItem('vehicle') .then(json = { let vehicles = []; if (json) { vehicles = JSON.parse(jso
我想在AsyncStorage.getItem中使用AsyncStorage.setItem.如何以正确的方式做到这一点?

我的代码如下:

createVehicle: function (vehicle,cb) {
    AsyncStorage.getItem('vehicle')
    .then(json => {

        let vehicles = [];

        if (json) {
            vehicles = JSON.parse(json);
            let o_vehicle = filter(vehicles,{autralis_id: vehicle.autralis_id});
            if (o_vehicle.length > 0) {
                cb(o_vehicle[0].id);
                return;
            } else {
                vehicles.push(vehicle);
            }
        } else {
            vehicles.push(vehicle);
        }
        AsyncStorage.setItem('vehicle',JSON.stringify(vehicles),() => {
            cb(vehicle.id + 1)
        });
    }).done();
},

这是正确的方法吗?

解决方法

我已经创建了一个存储服务,可以在需要时通过传递所需的参数在整个项目中使用.看一看 :

export default {
async setItem(key,value) {
    try {
        return await AsyncStorage.setItem(key,JSON.stringify(value));
    } catch (error) {
        // console.error('AsyncStorage#setItem error: ' + error.message);
    }
},async getItem(key) {
    return await AsyncStorage.getItem(key)
        .then((result) => {
            if (result) {
                try {
                    result = JSON.parse(result);
                } catch (e) {
                    // console.error('AsyncStorage#getItem error deserializing JSON for key: ' + key,e.message);
                }
            }
            return result;
        });
},async removeItem(key) {
    return await AsyncStorage.removeItem(key);
}
}

这是迄今为止我遇到过的最佳实践.你也应该使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读