1***@qq.com
1***@qq.com
  • 发布:2023-03-26 22:37
  • 更新:2023-03-27 14:36
  • 阅读:462

this.$refs.xxx Android打包安装后, 是不是不支持? (为空) (usb调试时,是正常有数据) [Vue warn]: Avoid app logic

分类:uni-app

this.$refs.xxx Android
打包安装后, 是不是不支持? (为空)

(usb调试时,是正常有数据),能正确输出当前界面的json数据.

USB调试时, 它会有警告:

[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.

[Vue warn]:避免使用依赖于枚举组件实例上的键的应用程序逻辑。在生产模式下,密钥将为空,以避免性能开销。

2023-03-26 22:37 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

$refs 是多么好用的功能呀.

如果有这个功能, 我根本也不用再搞什么 v-model 绑定数据.

直接通过$refs就能访问界面的所有控件. 和DELPHI基本就是一样的效果了.

能否打包时, 也依然此功能有效呢??? ( 或者, 提供一个APP参数来控制它 )

1***@qq.com

1***@qq.com (作者)

自已顶一下

1***@qq.com

1***@qq.com (作者)

经测试, 打包成APP时,
可以访问: this.$refs.k1.text

但无法访问: this.$refs
比如: 你想遍历所有的ref,

for (ley key in this.$refs){
console.log( this.$refs[key] );
};

上述这样书写, 就会有警告: .

[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.

[Vue warn]:避免使用依赖于枚举组件实例上的键的应用程序逻辑。在生产模式下,密钥将为空,以避免性能开销。

你在USB调试模式下, 是可以执行, 但一旦打包了, 就不执行了.(或者说是空值)

不知总结得对不对, 肯请大侠指正!

1***@qq.com

1***@qq.com (作者)

那我又想出一个解决方法:

既然 系统不肯让我访问所有的ref,
那我就自已建立起一个 列表, 里面存储我的每个控件的ref

然后,我就可以

    let list=['k1','k2'];  //手工自已存起来  

    //后续,程序可以这样遍历  
    for (let i in list){  
      console.log(this.$refs[list[i]].text);  
    };

要回复问题请先登录注册