javascript - 无法在 react-chartjs-2 中分配类型

标签 javascript reactjs typescript chart.js react-chartjs

我正在使用 React 和 TypeScript。 我收到类型错误。 我该如何解决?

位置是字符串类型。 http://www.chartjs.org/docs/latest/configuration/legend.html

[React + ts + react-chartjs-2]

import React from 'react';
import {Pie} from 'react-chartjs-2';

export default class Chart extends React.Component{
  constructor(props) {
     super(props);
     this.state = { };
  }

  render() {
    let options = {
      legend: {
        position:'bottom',
      }
    };

    return (
      <Pie options={options}  />
    );
  }
}

[错误。] 属性“选项”的类型不兼容。

Type '{ legend: { position: string; }; }' is not assignable to type 'ChartOptions'.
Types of property 'legend' are incompatible.
Type '{ position: string; }' is not assignable to type 'ChartLegendOptions'.
Types of property 'position' are incompatible.
Type 'string' is not assignable to type 'PositionType'.

最佳答案

首先,您缺少必需的数据属性,即

<Pie data={data} />

然后您可以将代码更改为:

import React from 'react';
import * as ReactDOM from "react-dom"
import { Pie } from 'react-chartjs-2';
import { ChartOptions } from 'chart.js'

export default class Chart extends React.Component {
  constructor(props) {
    super(props);
    this.state = {};
  }

  render() {
    const data = {
      labels: [
        'Red',
        'Green',
        'Yellow'
      ],
      datasets: [{
        data: [300, 50, 100],
        backgroundColor: [
          '#FF6384',
          '#36A2EB',
          '#FFCE56'
        ],
        hoverBackgroundColor: [
          '#FF6384',
          '#36A2EB',
          '#FFCE56'
        ]
      }]
    };

    const options: ChartOptions = {
      legend: {
        position: 'bottom',
      }
    };

    return (
      <Pie data={data} options={options} />
    );
  }
}

ReactDOM.render(<Chart />, document.getElementById("root"))

您可以看到此示例有效 here .

关于javascript - 无法在 react-chartjs-2 中分配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52315818/

相关文章:

javascript - 收缩时带有图标装饰的 Material-UI 文本字段的标签位置 false

javascript - 类型 'Never' Typescript/React 上不存在属性

javascript - Array.prototype.sort 方法更改数组值以及该数组的变量值

javascript - 使用 redux 流下载文件

javascript - Openlayers 4 - 使图层在功能点击时不可见

javascript - 在 React Native 的其他 .tsx 组件中使用 .tsx 组件

javascript - 如何在没有隔离范围的指令中获得双向数据绑定(bind)?

javascript - 如何实现垂直布局

javascript - 使用 "this"调用函数

javascript - iOS 使用 UIWebView 使用 Math.pow 执行 JavaScript 字符串