Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

按照文档按需加载会出问题,貌似按需加载还是有些问题的,有些组件使用vc开头的没有内部引用(例如绘制量算等)。 #87

Closed
FrozenQ opened this issue Nov 30, 2020 · 12 comments

Comments

@FrozenQ
Copy link

FrozenQ commented Nov 30, 2020

[BUG 反馈] 按照文档按需加载会出问题

浏览器版本号

Google Chrome 版本 87.0.4280.66(正式版本) (64 位)

Vue 版本号

2.6.11

组件库版本号

2.1.6

现象描述

按需加载会出现  Cannot read property 'scriptPromise' of undefined

完整异常信息

Uncaught (in promise) TypeError: Cannot read property 'scriptPromise' of undefined
    at VueComponent.beforeInit$ (index.js?22a4:1038)
    at tryCatch (runtime.js?96cf:63)
    at Generator.invoke [as _invoke] (runtime.js?96cf:293)
    at Generator.eval [as next] (runtime.js?96cf:118)
    at tryCatch (runtime.js?96cf:63)
    at invoke (runtime.js?96cf:154)
    at eval (runtime.js?96cf:189)
    at new Promise (<anonymous>)
    at callInvokeWithMethodAndArg (runtime.js?96cf:188)
    at AsyncIterator.enqueue [as _invoke] (runtime.js?96cf:211)

在线示例 / 仓库 URL

复现代码

赋值按需加载的demo,其余没有变化。就是文档的示例代码,我按需加载引用viewer

预期输出

出现viewer的视图

实际输出

没有出现视图
@zouyaoji
Copy link
Owner

因为量算、绘制组件用到了~ vc-collection-primitive等图元组件,具体,所以这几个组件也得引入才行 - -~

@FrozenQ
Copy link
Author

FrozenQ commented Nov 30, 2020

是的,我看源码的时候也发现,感觉不是很友好。不过单独引用viewer,按照按需加载的方式处理,就会报上面说的那个错。 Cannot read property 'scriptPromise' of undefined

@zouyaoji
Copy link
Owner

除了量算等引用了基础组件的按需引入也有问题吗?方便传一个项目我测测?

@FrozenQ
Copy link
Author

FrozenQ commented Nov 30, 2020

可以的话,我今晚上传一份,后续会给出链接。

@zouyaoji
Copy link
Owner

就这儿就能传附件压缩包。 我回头看看能不能把逻辑改为,在按需引入 量算组件情况时,如果没有引入基础组件的话 自动把基础组件引入了,体验就好些了吧。

@FrozenQ
Copy link
Author

FrozenQ commented Nov 30, 2020

hello-vue-cesium.zip

@zouyaoji
Copy link
Owner

嗯 重现了, 我按需引入 $vc没定义所以报错了。
下个版本解决一下。
你暂时加这句话对付一下即可:
Vue.prototype.$vc = {}

image

@FrozenQ
Copy link
Author

FrozenQ commented Dec 1, 2020

单独添加的话,有些组件其实不是很好处理。我在观察源码的时候,有留意到一些组件,用到不同语言的部分。所以我写了如下的方法。
import lang from 'xxxxx/lang/zh-hans.js'
Vue.prototype.$vc = {
VERSION: 'x.x.x',
lang
}

希望有助于其他类似问题的人。 如果有时间的话,我觉得可以让一些组件更加规范化,使得按需引入更加方便。

@zouyaoji
Copy link
Owner

zouyaoji commented Dec 1, 2020

嗯 单独添加确实有这个问题 昨晚都已经解决了 我再测测没问题就发一个版本 谢谢反馈哈

@zouyaoji
Copy link
Owner

zouyaoji commented Dec 1, 2020

@FrozenQ 嗨,我测试差不多了,您有时间可以试试。把附件下载解压到您项目目录的 node_modules\vue-cesium\lib覆盖即可。
之前教您加的这句话“Vue.prototype.$vc = {
VERSION: 'x.x.x',
lang
}”不需要了哈。
lib.zip

@FrozenQ
Copy link
Author

FrozenQ commented Dec 1, 2020

ok,我看看,谢谢啦

@zouyaoji
Copy link
Owner

zouyaoji commented Dec 1, 2020

嗯 感谢,有啥问题再反馈。我先提交了。如果没啥大问题我就发布NPM了。

zouyaoji added a commit that referenced this issue Dec 1, 2020
@zouyaoji zouyaoji closed this as completed Dec 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants