Closed shengguo closed 1 month ago
能贴出部分代码看看吗?单纯的描述,我很难看出问题出在哪里。。。
我通过打印日志看了exe的执行效果。 实测,onMounted中写的前端代码会执行,比如计时器什么的,但调用后端都会失效,好像后端还没准备好。 应该是执行顺序的问题。 您可以试一下,比如您可以后端system.py中写个log输出,从前端调用这个方法。onMounted中调用这个方法是不会执行的。
你可以参考一下PPX项目里,程序打开后自动检测升级的代码 gui/src/components/BtnUpdate.vue
,部分代码如下:
onMounted(() => {
state.timer = setInterval(() => {
if (window.pywebview != undefined) {
onCheckUpdate(true) // 调用后端API,自动检测更新
clearInterval(state.timer)
state.timer = ''
}
}, 100)
})
后端函数是挂载在window.pywebview参数下面。在前端调用onMounted的时候,后端的函数可能还没挂载上。所以,最好是定时检测一下函数是否挂载成功,再调用。
谢谢,确实好用!!
在onMounted中从数据库取数据然后赋值给pinia,这块逻辑在pnpm run start时是正常的, 但windows打包后启动exe,这块代码就失效了,pinia值没被更新。