我正在尝试使用chartjs构建一个LineChart,但我在读取图表数据时遇到了一些问题,问题似乎是我的标签为null,但我从日期中将它们作为数组(选中,数组从服务器上传输很好)。我不知道问题是什么,知道是什么造成了问题吗?
这张图表现在是这样的:

我发现了这几个错误:

这是我的代码:
import { Link } from "react-router-dom";
import { Line } from "react-chartjs-2";
import {Chart as chartjs, Title, Tooltip, LineElement, Legend, CategoryScale, LinearScale, PointElement} from "chart.js";
chartjs.register(
Title, Tooltip, LineElement, Legend, CategoryScale, LinearScale, PointElement
)
function BitCoin() {
const [data, setData] = React.useState(null);
const [dates, setDates] = React.useState(null);
const [coinValue, setCoinValue] = React.useState(null);
React.useEffect(() => {
fetch("http://localhost:3001/bitcoin")
.then((res) => res.json())
.then((data) => {
const twoDimensionArr = data.message;
setData(twoDimensionArr);
setDates(twoDimensionArr.map(item => item[0]));
setCoinValue(Number(twoDimensionArr.map(item => item[1])));
})
.then(console.log(data))
}, []);
const [chartData, setChartData] = useState({
lables: dates,
datasets:[
{
lable: "value of BTC in ILS",
data: coinValue,
backgroundColor:'gold'
}
]
})
return (
<div style={{textAlign:"center", fontFamily:"Comic Sans MC", fontSize:"100"}}>
THIS IS THE BitCoin PAGE
<nav>
<Link to="/"> Home </Link>
</nav>
<nav>
<Link to="/coins"> Coins </Link>
</nav>
<Line
data = {chartData}
/>
</div>
)
}
export default BitCoin;发布于 2022-07-22 11:57:31
您没有标签数组,在数据对象中有一个datasets键和一个lables键,最后一个是错误的,应该是labels。如果您将其更改为它将起作用:
const [chartData, setChartData] = useState({
labels: dates,
datasets: [{
label: "value of BTC in ILS",
data: coinValue,
backgroundColor: 'gold'
}]
})对于dataset中的lable键,它应该是label
发布于 2022-07-22 12:08:55
您正在编写label和labels的拼写错误,应该是label而不是lable和labels,而不是lables。我建议的另一件事是在一种情况下将Line组件包装起来,比如
...other code
{ dates.length > 0 &&
<Line data = {chartData} />
}
...other code这只是等待api调用和dates状态改变。
https://stackoverflow.com/questions/73079847
复制相似问题