g***@sina.com
g***@sina.com
  • 发布:2023-08-11 00:15
  • 更新:2023-08-11 14:23
  • 阅读:195

为什么这个小程序的手动更新按钮在微信开发者工具无法显示?

分类:uni-app
<template>  
    <view v-show="hasNewVersion">  
        <button @click="updateMyApp()">升级</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                hasNewVersion: false  
            }  
        },  
        onLoad() {  
            this.checkMyAppNewVersion();  

        },  
        methods: {  
            checkMyAppNewVersion() {  
                const updateManager = uni.getUpdateManager();  
                updateManager.onCheckForUpdate(function(res) {  
                    this.hasNewVersion = res.hasUpdate;  
                    console.log(this.hasNewVersion);  
                });  
            },  
            updateMyApp() {  
                const updateManager = uni.getUpdateManager();  
                updateManager.onUpdateReady(function(res) {  
                    uni.showModal({  
                        title: '更新提示',  
                        content: '新版本已经准备好,是否重启应用?',  
                        success(res) {  
                            if (res.confirm) {  
                                // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启  
                                updateManager.applyUpdate();  
                            }  
                        }  
                    })  
                })  
            },  

        }  
    }  
</script>  

<style>  
</style>

对于这个简单页面,我已经在微信小程序后台设置了优先使用本地版本,待用户愿意以后点击升级按钮后再将最新版本更新到本地。现在的问题是,使用微信开发者工具在模拟更新编译后,虽然v-show绑定了hasNewVersion,并且代码中console.log中也打印出true了,但是这个按钮却没有显示出来。我想问一下是不是v-show的绑定失效了啊?

2023-08-11 00:15 负责人:无 分享
已邀请:
g***@sina.com

g***@sina.com (作者)

我知道问题是啥了,checkMyAppNewVersion里的函数是普通函数,不是回调函数,这导致里面的this指的不是vue组件,而是这个函数,修改方法也很简单,把这里面的函数修改为回调函数就可以用了。感谢万能的GPT。

Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

牛啊

要回复问题请先登录注册