1***@qq.com
1***@qq.com
  • 发布:2020-01-18 16:41
  • 更新:2020-05-10 01:15
  • 阅读:2363

【报Bug】uni.getStorageSync取值不正确(开启V3版本)

分类:uni-app
<template>  
    <view class="content">  
        <button @click="cun1">存数字</button>  
        <view>111</view>  
        <button @click="cun2">存对象</button>  
        <view>222</view>  
        <button @click="cun3">存字符串</button>  
        <view>333</view>  
        <button @click="cun4">复杂对象</button>  
        <view>444</view>  
        <button @click="qu">取值</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onLoad() {  

        },  
        methods: {  
            cun1(){  
                uni.showLoading({  
                    title: '存储中...'  
                })  
                var tiaojian = {  
                    gender: 1,  
                    age: `10-100`,  
                    height: `10-100`,  
                    weight: `10-100`,  
                    education : 4,  
                    marital_status : 0,  
                    work_address: "gzqy",  
                    live_address: "xjdz",  
                    children: 6,  
                    img_status: 2,  
                    nature: "汉族",  
                    love: "唉",  
                    pageNo: 1,  
                    pageSize: 30,  
                }  
                uni.setStorageSync('shuzi',1);  
                uni.setStorageSync('isshiming', 1);  
                uni.setStorageSync('phone', 15343488697);  
                uni.setStorageSync('tiaojian', tiaojian)  
                setTimeout(()=>{  
                    uni.hideLoading()  
                },500)  
            },  
            cun2(){  
                uni.showLoading({  
                    title: '存储中...'  
                })  
                let a = {xiaobai: '小白', xiaohei: '小黑'}  
                uni.setStorageSync('duixiang',a)  
                setTimeout(()=>{  
                    uni.hideLoading()  
                },500)  
            },  
            cun3(){  
                uni.showLoading({  
                    title: '存储中...'  
                })  
                uni.setStorageSync('zifuchuan','abcd')  
                setTimeout(()=>{  
                    uni.hideLoading()  
                },500)  
            },  
            cun4(){  
                uni.showLoading({  
                    title: '存储中...'  
                })  
                let ojbk = {  
                    name: '薛栋梁',  
                    age: 18,  
                    gender: 1,  
                    idcard: '1411241993040302217',  
                    duixiang: {  
                        a:10,b: 20,c: 90  
                    }  
                }  
                uni.setStorageSync('ojbk',JSON.stringify(ojbk))  
                setTimeout(()=>{  
                    uni.hideLoading()  
                },500)  
            },  
            qu(){  
                console.log(uni.getStorageSync("shuzi"));  
                console.log(uni.getStorageSync("duixiang"));  
                console.log(uni.getStorageSync("zifuchuan"));  
                console.log(uni.getStorageSync("ojbk"));  
                console.log(uni.getStorageSync("isshiming"));  
                console.log(uni.getStorageSync("phone"));  
                console.log(uni.getStorageSync("tiaojian"));  
            }  
        }  
    }  
</script>  

<style>  
    .content {  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        justify-content: center;  
    }  

    .logo {  
        height: 200rpx;  
        width: 200rpx;  
        margin-top: 200rpx;  
        margin-left: auto;  
        margin-right: auto;  
        margin-bottom: 50rpx;  
    }  

    .text-area {  
        display: flex;  
        justify-content: center;  
    }  

    .title {  
        font-size: 36rpx;  
        color: #8f8f94;  
    }  
</style>  

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

运行我上面这段代码,在编辑器版本为:2.5.1.20200103情况下,打印出来的东西有问题,外面套了一层,比如我存储的1,取出来的是:[Object] {"type":"number","data":1} at pages\index\index.vue:96

[步骤]

[结果]

[期望]期望取出来的是1

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号] win10

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号] 7.0

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2020-01-18 16:41 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 2.6.3 alpha 已修复

  • m7

    我用的3.6.4还有这个问题

    2022-10-26 09:27

  • DCloud_UNI_GSQ

    回复 m7: 详述

    2022-10-27 12:00

1***@qq.com

1***@qq.com (作者) - 我是小提莫

目前发现的问题是编辑器2.5.1.20200103开启v3模式取值会有问题,但是编辑器2.5.7.20200116-alpha开启v3则一切正常,不过历次更新说明没有说改过这个问题,所以就很奇怪!

  • DCloud_UNI_GSQ

    你使用2.5.1能一直复现吗?

    2020-01-18 17:42

  • 1***@qq.com (作者)

    回复 DCloud_UNI_GSQ: 刚试了一下,又正常了!!所以....

    2020-01-18 17:49

  • DCloud_UNI_GSQ

    回复 1***@qq.com: 你之前的步骤是在v3其他模式之间切换吗?

    2020-01-18 17:52

  • 1***@qq.com (作者)

    能复现

    2020-01-18 17:54

  • 1***@qq.com (作者)

    回复 DCloud_UNI_GSQ: 就是不是v3切换到v3 ,点击存储,然后取值,就变成外面套了一层的对象了!

    2020-01-18 18:02

  • DCloud_UNI_GSQ

    回复 1***@qq.com: 试试这个临时解决方案,在每次存储之前调用一下 uni.removeStorageSync

    2020-01-18 18:20

DCloud_UNI_GSQ

DCloud_UNI_GSQ

已确认升级到v3时数据格式兼容有问题,后续将进行修复
临时解决方案:存储新数据前使用uni.removeStorageSync移除旧数据,或者读取后进行兼容判断

y***@sina.com

y***@sina.com - 相忘于江湖

我是2.6.5,好像还有这个问题

  • DCloud_UNI_GSQ

    是启用v3之前存储的数据,启用v3之后存储后再读取就出问题了吗?

    2020-03-19 17:44

1***@qq.com

1***@qq.com

我今天依然遇到,不过是 在小程序环境下是正常的 ,在h5 环境下出出现相同的问题 {type: '' ,data:{}} 的类型

  • DCloud_UNI_GSQ

    HBuilderX版本多少?

    2020-05-07 20:33

  • 1***@qq.com

    回复 DCloud_UNI_GSQ: 我 的版本是2.7.0 alpha getStorageSync依然有问题。 我是用v3版本替换之前非v3的包,就会发现数据读不出来。

    2020-05-10 01:16

  • 1***@qq.com

    回复 DCloud_UNI_GSQ: 应该是 存储的是 数组类型的数据不支持。比如这样 [{name:'wang',age:15},{name:'wang',age:19}]

    2020-05-10 01:32

1***@qq.com

1***@qq.com - 开发者

我 的版本是2.7.0 alpha getStorageSync依然有问题。

  • DCloud_UNI_GSQ

    怎么判断有问题的?能否具体说一下

    2020-05-11 16:19

该问题目前已经被锁定, 无法添加新回复