哈哈柚
哈哈柚
  • 发布:2021-12-10 21:11
  • 更新:2024-05-22 22:16
  • 阅读:1825

【报Bug】vue3模式下nvue页面不能通过computed获取vuex改变后的值

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.16

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: 小米10至尊 miui12.5.21.11.3开发版

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
computed: {  
        gettoken() {  
            return this.$store.state.token;  
        }  
    }

操作步骤:

manifest.json设置为vue版本为2,运行到手机,首页点击修改按钮,页面gettoken的值会随着点击而改变。
manifest.json设置为vue版本为3,再次运行到手机,首页点击修改按钮,页面值不变,再去打印vuex中的值发现确实是一样变过了

预期结果:

vue3下nvue页面可以正常获取改变后的值

实际结果:

vue3下无法获取改变后的值,依然是初始值

bug描述:

测试发现vue2下面可以正常获取,vue3下一直是初始值。
测试代码见附件,测试场景为 运行到手机

computed: {  
        gettoken() {  
            return this.$store.state.token;  
        }  
    }
2021-12-10 21:11 负责人:无 分享
已邀请:
最光阴

最光阴 - 前端开发

vue3下nvue页面使用vuex时最好使用getApp().$store.state的方式,我之前使用组合式api时也出现vuex状态不更新的情况,发帖后有管理员这样指导我的,很有效

FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

计算属性没有调用
可以用一下方法:

<template>  
    <view class="content">  
        <image class="logo" src="/static/logo.png"></image>  
        <view class="text-area">  
            <text class="title">{{ title }}</text>  
        </view>  
        <button type="default" @click="submit()">修改</button>  
        <text>{{ token }}</text>  
    </view>  
</template>  

<script>  
export default {  
    data() {  
        return {  
            title: 'Hello',  
            token:''  
        };  
    },  
    onLoad() {},  
    computed: {  
        gettoken() {  
            console.log("gettoken");  
            return this.$store.state.token;  
        }  
    },  
    methods: {  
        submit() {  
            this.$store.dispatch('login', { token: '登录了' }).then(res => {  
                console.log(res);  
                console.log(this.$store.state.token);  
                this.token = this.$store.state.token  
                this.$forceUpdate();  
            });  
        }  
    }  
};  
</script>  

<style>  

</style>  
哈哈柚

哈哈柚 (作者)

HBuilder X 3.4.3-alpha已支持

2***@qq.com

2***@qq.com

现在tabbar页面只有首页能获取vuex变化后的值,其他tabbar页面不行。非tabbar页面可以获取但是会执行2次computed。watch,watchEffect可以正常工作

  • 2***@qq.com

    注意computed被模板使用才会被执行,获取vuex的变化,computed,watch,watchEffect均可正常工作

    2024-05-23 01:50

要回复问题请先登录注册