为什么 nuxt 用 vue-chartjs 给我这个错误?

Why does nuxt give me this error with vue-chartjs?(为什么 nuxt 用 vue-chartjs 给我这个错误?)
本文介绍了为什么 nuxt 用 vue-chartjs 给我这个错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在尝试使 vue-chartjs 工作时收到此错误

./node_modules/vue-chartjs/es/BaseCharts.js 中的
 WARN在chart.js"中找不到导出默认"(导入为图表")

还有这个在 devtools 中:

TypeError: chart_js__WEBPACK_IMPORTED_MODULE_0__.default 不是构造函数

重建步骤:

  1. 使用以下命令创建 nuxt 应用:$ yarn create nuxt-app <project_name>
  2. $ yarn add vue-chartjs chart.js 添加 vue-chartjs
  3. 根据 vue-chartjs 文档添加以下代码

~/components/BarChart.js

从 'vue-chartjs' 导入 { Bar }导出默认{延伸:酒吧,道具:['数据','选项'],挂载(){this.renderChart(this.data, this.options)},}

~/pages/index.vue

<模板><div 类=容器">

<条形图:data="barChartData";:options="barChartOptions";:高度=200"/></div></div></模板><脚本>导出默认{数据() {返回 {条形图数据:{标签: ['2019-06','2019-07','2019-08','2019-09','2019-10','2019-11','2019-12','2020-01','2020-02','2020-03','2020-04','2020-05',],数据集:[{标签:访问",数据:[10, 15, 20, 30, 40, 50, 60, 70, 34, 45, 11, 78, 45],背景颜色:'#003f5c',},{label: '页面浏览量',数据:[30, 24, 57, 23, 68, 72, 25, 64, 133, 143, 165, 33, 56],背景颜色:'#2f4b7c',},{标签:'用户',数据:[45、65、30、53、34、35、26、37、34、45、67、87、98],背景颜色:'#665191',},],},条形图选项:{响应式:真实,传奇: {显示:假,},标题: {显示:真,text: '谷歌分析数据',字体大小:24,fontColor: '#6b7280',},工具提示:{背景颜色:'#17BF62',},秤:{x轴:[{网格线: {显示:假,},},],y轴:[{滴答声:{beginAtZero:是的,},网格线: {显示:假,},},],},},}},}</脚本><风格>/* 使用 Tailwind CSS 的示例 `apply` at-rules.容器 {@apply min-h-screen flex justify-center items-center text-center mx-auto;}*/.容器 {边距:0 自动;最小高度:100vh;显示:弯曲;证明内容:中心;对齐项目:居中;文本对齐:居中;}.标题 {字体系列:'流沙','Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,无衬线;显示:块;字体粗细:300;字体大小:100px;颜色:#35495e;字母间距:1px;}.subtitle {字体粗细:300;字体大小:42px;颜色:#526488;字间距:5px;底部填充:15px;}.链接{填充顶部:15px;}</风格>

我也在项目中使用tailwindcss,其他nuxt项目选项有Axios、Git、ESlint、Prettier.

解决方案

Chart.js 有一个新的发布版本,3.0.x.我想,vue-chartjs 还不支持.

您可以降级 chart.js 并重试.

ChartJS [3.0.1 - 2 天前发布]https://www.npmjs.com/package/chart.js?activeTab=readme

大约 22 小时前有一个 vue-chartjs 问题.https://github.com/apertureless/vue-chartjs/issues/695

I get this error while trying to make vue-chartjs work

 WARN  in ./node_modules/vue-chartjs/es/BaseCharts.js

"export 'default' (imported as 'Chart') was not found in 'chart.js'

And also this in devtools:

TypeError: chart_js__WEBPACK_IMPORTED_MODULE_0__.default is not a constructor

Steps to recreate:

  1. Create nuxt app with: $ yarn create nuxt-app <project_name>
  2. Add vue-chartjs with $ yarn add vue-chartjs chart.js
  3. Add following code which should work according to vue-chartjs docs

~/components/BarChart.js

import { Bar } from 'vue-chartjs'

export default {
  extends: Bar,
  props: ['data', 'options'],
  mounted() {
    this.renderChart(this.data, this.options)
  },
}

~/pages/index.vue

<template>
  <div class="container">
    <div>
      <bar-chart
        :data="barChartData"
        :options="barChartOptions"
        :height="200"
      />
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      barChartData: {
        labels: [
          '2019-06',
          '2019-07',
          '2019-08',
          '2019-09',
          '2019-10',
          '2019-11',
          '2019-12',
          '2020-01',
          '2020-02',
          '2020-03',
          '2020-04',
          '2020-05',
        ],
        datasets: [
          {
            label: 'Visits',
            data: [10, 15, 20, 30, 40, 50, 60, 70, 34, 45, 11, 78, 45],
            backgroundColor: '#003f5c',
          },
          {
            label: 'Pages Views',
            data: [30, 24, 57, 23, 68, 72, 25, 64, 133, 143, 165, 33, 56],
            backgroundColor: '#2f4b7c',
          },
          {
            label: 'Users',
            data: [45, 65, 30, 53, 34, 35, 26, 37, 34, 45, 67, 87, 98],
            backgroundColor: '#665191',
          },
        ],
      },
      barChartOptions: {
        responsive: true,
        legend: {
          display: false,
        },
        title: {
          display: true,
          text: 'Google analytics data',
          fontSize: 24,
          fontColor: '#6b7280',
        },
        tooltips: {
          backgroundColor: '#17BF62',
        },
        scales: {
          xAxes: [
            {
              gridLines: {
                display: false,
              },
            },
          ],
          yAxes: [
            {
              ticks: {
                beginAtZero: true,
              },
              gridLines: {
                display: false,
              },
            },
          ],
        },
      },
    }
  },
}
</script>

<style>
/* Sample `apply` at-rules with Tailwind CSS
.container {
@apply min-h-screen flex justify-center items-center text-center mx-auto;
}
*/
.container {
  margin: 0 auto;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.title {
  font-family: 'Quicksand', 'Source Sans Pro', -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  display: block;
  font-weight: 300;
  font-size: 100px;
  color: #35495e;
  letter-spacing: 1px;
}

.subtitle {
  font-weight: 300;
  font-size: 42px;
  color: #526488;
  word-spacing: 5px;
  padding-bottom: 15px;
}

.links {
  padding-top: 15px;
}
</style>

I am also using tailwindcss in the project and other nuxt project options were Axios, Git, ESlint, Prettier.

解决方案

Chart.js has a new release version with 3.0.x. I think, vue-chartjs does not support it yet.

You can downgrade chart.js and try again.

ChartJS [3.0.1 - Published 2 days ago] https://www.npmjs.com/package/chart.js?activeTab=readme

And there is a vue-chartjs issue about 22 hours ago. https://github.com/apertureless/vue-chartjs/issues/695

这篇关于为什么 nuxt 用 vue-chartjs 给我这个错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)