首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uni-app vue3脚本安装程序无法在其他vue组件中找到globalData。

uni-app vue3脚本安装程序无法在其他vue组件中找到globalData。
EN

Stack Overflow用户
提问于 2022-02-10 07:28:23
回答 1查看 375关注 0票数 0

我在uni-app中使用uni-app安装程序,并且添加了globalData,但是它在安装糖中不起作用:

App.vue

代码语言:javascript
复制
<script setup lang="ts">
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
onLaunch(() => {
  console.log("App Launch");
});
onShow(() => {
  console.log("App Show");
});
onHide(() => {
  console.log("App Hide");
});
const globalData = {
  text: 'mytext'
}
</script>

我不能把globalData放进我的index.vue

代码语言:javascript
复制
const app = getApp() as any;
let text = app.globalData.text;

但是,当我将它从setup中删除时,它就运行得很好。

App.vue

代码语言:javascript
复制
<script setup lang="ts">
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
onLaunch(() => {
  console.log("App Launch");
});
onShow(() => {
  console.log("App Show");
});
onHide(() => {
  console.log("App Hide");
});

</script>

<script lang="ts">  
    export default {  
        globalData: {  
            text: 'mytext'  
        }
    }  
</script>

如何使用setup解决该问题

EN

回答 1

Stack Overflow用户

发布于 2022-02-10 10:53:05

来自Vue 3文档

在默认情况下,使用<script setup>的组件是关闭的--也就是说,通过模板参考或$parent链检索的组件的公共实例不会公开在<script setup>中声明的任何绑定。 要显式地公开<script setup>组件中的属性,请使用defineExpose编译器宏:当父实例通过模板refs获得该组件的实例时,检索到的实例将是形状{ a: number, b: number } (refs自动展开,就像在普通实例上一样)。

在您的例子中,公开globalData

代码语言:javascript
复制
<script setup lang="ts">
⋮
const globalData = {
  text: 'mytext'
}

defineExpose({ globalData })
</script>

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71061206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档