属性"属性"在类型"内部属性"上不存在



我是React Typescript的初学者。我目前正在学习如何在React Typescript应用程序中使用chart.js实现条形图。因此,我只想将属性datasets:的值作为道具传递给BarChart.tsx组件。

这是我的BarChart.tsx组件:

import Chart from 'chart.js/auto';
import { Line } from 'react-chartjs-2';
import 'chartjs-adapter-luxon';
import StreamingPlugin from 'chartjs-plugin-streaming';
Chart.register(StreamingPlugin);
interface ChartProperty {
label: string;
backgroundColor: string;
borderColor: string;
borderDash?: number[];
cubicInterpolationMode?: string;
fill: boolean;
data: [];
}
interface Props {
property: ChartProperty[];
}
const BarChart: React.FC<Props> = ({property}) => {
return (
<div>
<Line
data={{
datasets: property,
}}
height={100}
width={400}
options={{
scales: {
x: {
type: 'realtime',
realtime: {
delay: 2000,
onRefresh: (chart) => {
chart.data.datasets.forEach((dataset) => {
dataset.data.push({
x: Date.now(),
y: Math.random(),
});
});
},
},
},
},
}}
/>
</div>
);
};
export default BarChart;

这是我的App.tsx组件:

import './App.css';
import BarChart from './components/BarChart';
const ChartProperty = [
{
label: 'Dataset 1',
backgroundColor: 'rgba(255, 99, 132, 0.5)',
borderColor: 'rgb(255, 99, 132)',
borderDash: [8, 4],
fill: false,
data: [],
},
{
label: 'Dataset 2',
backgroundColor: 'rgba(54, 162, 235, 0.5)',
borderColor: 'rgb(54, 162, 235)',
cubicInterpolationMode: 'monotone',
fill: false,
data: [],
},
];
const App = () => {
return (
<div>
<h1 style={{ textAlign: 'center' }}>Sample Bar Chart</h1>
<BarChart property={ChartProperty} />
</div>
);
};
export default App;

但在这里,当我尝试这个时,我在名为property的道具中的<BarChart property={ChartProperty} />中遇到了错误。所以这是我得到的错误:

TS2322: Type '{ property: ({ label: string; backgroundColor: string; borderColor: string; borderDash: number[]; fill: boolean; data: never[]; cubicInterpolationMode?: undefined; } | { label: string; backgroundColor: string; ... 4 more ...; borderDash?: undefined; })[]; }' is not assignable to type 'IntrinsicAttributes'.
Property 'property' does not exist on type 'IntrinsicAttributes'.
25 |     <div>
26 |       <h1 style={{ textAlign: 'center' }}>Sample Bar Chart</h1>        
> 27 |       <BarChart property={ChartProperty} />
|                 ^^^^^^^^
28 |     </div>
29 |   );
30 | };

在这种情况下有人能帮我吗?如果有人能证明我的错误,我真的很感激。提前谢谢。

不能这样写:data: [];。正确:data: any[]

最新更新