类型错误google.visualization.DataTable不是构造函数

时间:2019-08-14 14:09:25

标签: javascript html google-apis-explorer jsapi

我正在尝试使用Google图表创建表,但是它返回表方法构造的错误。我看到了几个参考,但是我认为错误是jsapi库中给出的错误,因此google未定义。

> Uncaught TypeError: Cannot redefine property: Map
    at defineProperty (<anonymous>)
    at gvjs_bc (jsapi_compiled_format_module.js:13)
    at jsapi_compiled_format_module.js:28
> Uncaught TypeError: Cannot read property 'Xc' of undefined
    at jsapi_compiled_default_module.js:33
> Uncaught TypeError: Cannot use 'in' operator to search for 'google' in undefined
    at gvjs_k (jsapi_compiled_format_module.js:33)
    at jsapi_compiled_bar_module.js:17
> Uncaught TypeError: Cannot use 'in' operator to search for 'google' in undefined
    at gvjs_k (jsapi_compiled_format_module.js:33)
    at jsapi_compiled_table_module.js:5
 > Uncaught (in promise) TypeError: google.visualization.DataTable is not a constructor
    at drawChartUsersActive (UsersActive:280)
    at drawCharts (UsersActive:276)
    at loader.js:248

这是我的html代码,如您所见,它很简单,我只是在尝试绘制表格,但总是向我返回这些错误

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <meta name="layout" content="bootstrap">
  </head>
  <body>
    <div class="cabecalho"></div>
    <div id="table_div"></div>

    <script type="text/javascript">
      google.charts.load('current', {
        packages: ['bar', 'corechart', 'table'],
        callback: drawCharts
      });

      function drawCharts() {
        drawChartUsersActive();
      }

      function drawChartUsersActive() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Name');
        data.addColumn('number', 'Salary');
        data.addColumn('boolean', 'Full Time Employee');
        data.addRows([
          ['Mike',  {v: 10000, f: '$10,000'}, true],
          ['Jim',   {v:8000,   f: '$8,000'},  false],
          ['Alice', {v: 12500, f: '$12,500'}, true],
          ['Bob',   {v: 7000,  f: '$7,000'},  true]
        ]);

        var table = new google.visualization.Table(document.getElementById('table_div'));

        table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
      }
    </script>
  </body>

</html>

1 个答案:

答案 0 :(得分:1)

您尝试更换:

google.charts.load('current', {
    packages: ['bar', 'corechart', 'table'],
    callback: drawCharts
  });

  function drawCharts() {
    drawChartUsersActive();
  }

作者:

google.charts.load('current', {'packages':['table']});
google.charts.setOnLoadCallback(drawChartUsersActive());

这正是文档中所写的内容,所以也许行得通;)