Vue.js使用Vue plotly时出错:未定义fullLayout

Vue.js使用Vue plotly时出错:未定义fullLayout,vue.js,Vue.js,我正在使用vue plotly进行简单绘图,但在console中经常出现错误: Uncaught (in promise) TypeError: fullLayout is undefined emitAfterPlot vue-plotly.umd.js:140916 plot vue-plotly.umd.js:140908 我已经设法将我的组件简化为一个最小的示例,以帮助您重现错误,并希望能够指导我解决这个问题 这是我的组件MyPlot.vue: 从“vue Plotl

我正在使用vue plotly进行简单绘图,但在console中经常出现错误:

Uncaught (in promise) TypeError: fullLayout is undefined
    emitAfterPlot vue-plotly.umd.js:140916
    plot vue-plotly.umd.js:140908
我已经设法将我的组件简化为一个最小的示例,以帮助您重现错误,并希望能够指导我解决这个问题

这是我的组件MyPlot.vue:


从“vue Plotly”导入{Plotly}
导出默认值{
组成部分:{
阴谋地
},
数据(){
返回{
数据:[],
布局:{
标题:“我的图形”,
传奇:没错,
},
加载:错误
}
},
挂载(){
这是。加载=真;
this.loadData().then(数据=>{
this.data=Object.seal(数据);
这一点:加载=错误;
});
},
方法:{
加载数据(){
返回新承诺((解决)=>{
让数据=[{
x:[1,2,3,4],
y:[10,15,13,17],
类型:“分散”
}];
解析(数据);
});
}
}
}
安装部分可能有些过分,但这与我的用例有关,因为我调用Vuex存储并在打印数据之前进行一些处理。 问题似乎来自
v-if/v-else
模板和我使用promise加载数据的方式的组合。事实上,移除一部分或另一部分似乎是可行的

vue plotly在抱怨什么?抱歉,如果这是新手错误,我仍在学习vuejs。我在vue plotly github repo上发布了一个类似的问题,但它可能只与vuejs相关


有没有解决/调查此错误的方法?

您可以尝试在计算机中执行此操作

    this.loading = true;
    this.loadData()
      .then((result) => {
        console.log("result: ", result);
        this.data = result;
      })
      .catch((error) => console.log("error: ", error));
    this.loading = false;

我在我的系统上尝试了这个方法,效果很好。

模板中没有容器,在vue js中必须有一个根元素,您可以在这里找到更多信息@Ademyalçı糟糕的是,当我写问题时,我错过了根标签,但我在实际代码中确实有它。我编辑了我的问题。我认为错误在于你处理承诺的方式。因为当我直接分配数据值时工作正常。请参阅文件,以检查承诺的执行情况work@beingyogi我知道这与我在问题中所说的处理承诺的方式有关。你能详细说明一下错误的起因吗?因为如果我看一下文档,我对承诺的使用似乎是一个相当简单的用例。在删除v-if/v-else条件的同时遵守承诺同样有效,这让我很困惑。你能解释一下问题的原因吗?因为将
this.loading=false
置于then块之外意味着加载变量将在处理承诺结果之前更新,对吗?