我试图弄清楚如何使用地图功能将多个数据放入雷达图。我选择了一些相关的代码如下。
class TopPage_Comp extends Component{
constructor(props){
super(props)
this.state = {
motivationtypeTestRecords: []
}
}
componentDidMount() {
const id = this.state.user.id
fetch("http://localhost:8080/test/" + id, {
method: "GET"
})
.then((response) => {
response.json().
then(json => {
const types = json.motivationtypeList
this.setState(
{
motivationtypeTestRecords: records,
}
)
})
})
}
render() {
const backgroundColors = [
'rgba(255,99,71,0.35)',
'rgba(0,128,0,0.35)',
'rgba(255,255,0,0.35)'
];
const borderColors = [
'rgba(255,99,71,1)',
'rgba(0,128,0,1)',
'rgba(255,255,0,1)'
];
return(
<>
{this.state.motivationtypeTestRecords.length > 0 &&
<MotivationtypeChart
scores={this.state.motivationtypeTestRecords}
backgroundColors={backgroundColors}
borderColors={borderColors}
/>
}
</>
)
}
}
export class MotivationtypeChart extends Component {
constructor(props){
super(props);
}
render(){
return(
<Radar
data={{
labels: ['Drive', 'Volunteer', 'Create', 'Analyze'],
datasets:[
{this.props.scores.map((s, index) =>
{
label: s.createdDate,
data: [
s.driveScore,
s.volunteerScore,
s.createScore,
s.analyzeScore
],
backgroundColor: this.props.backgroundColors[index],
borderColor: this.props.borderColor[index],
borderWidth: 2
},
)}
]
}}
height={400}
width={500}
options={{
maintainAspectRation: false,
scale: {
grid: {
display: false
},
beginAtZero: true,
min: 0,
max: 20,
stepSize: 1,
}
}}
/>
)
}
}
我正在使用 react-chartjs-2。当它在 MotivationtypeChart 组件上调用 this.props.scores 时,该错误反复出现意外关键字“this”。首先是不允许在 datasets 数组中使用 map 函数吗?或者有什么办法可以解决这个问题?我真的很感谢像这里的人这样的熟练程序员的建议。