美文网首页
getCurrentInstance在vue3中遇到的问题

getCurrentInstance在vue3中遇到的问题

作者: 思我恋 | 来源:发表于2021-09-14 16:57 被阅读0次

    在项目升级中碰到的问题

    父组件A通过$refs调用子组件B的方法时候出现的bug

    两个组件都是script setup写法

    image.png
    Uncaught TypeError: Cannot read properties of null (reading 'proxy')

    A在通过$refs调用B的openPicker的方法,
    B组件中的写法

        const openPicker = () => {
            const { proxy } = getCurrentInstance();
            proxy.$refs.picker.show = true;
        };
    
        defineExpose({ openPicker });
    

    openPicker是通过defineExpose暴露出去的
    ps:setup里面定义的方法和变量都是不会暴露出去的,想通过组件引用来使用就必须要用defineExpose

    解决方法
    const { proxy } = getCurrentInstance();不能写在openPicker里面,把它移出来就行了

        const { proxy } = getCurrentInstance();
        const openPicker = () => {
            proxy.$refs.picker.show = true;
        };
    
        defineExpose({ openPicker });
    

    相关文章

      网友评论

          本文标题:getCurrentInstance在vue3中遇到的问题

          本文链接:https://www.haomeiwen.com/subject/cwicgltx.html