【React chart.js】如何使用地图功能向雷达图添加多个数据

如何解决【React chart.js】如何使用地图功能向雷达图添加多个数据

我想弄清楚如何使用地图功能将多个数据放入雷达图。 我选择了一些相关的代码如下。

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,'rgba(255,255,0.35)'
    ];

    const borderColors = [
      'rgba(255,1)',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 函数吗? 或者有什么办法可以解决这个问题? 我非常感谢像这里的人这样的熟练程序员的建议。

解决方法

我认为您是直接在数组中使用 map,所以这就是为什么它向您显示错误的原因,而且它不是这样创建数据的好方法。

因此,请尝试创建将返回数据的新函数,然后在 dataSets 图表中使用该函数作为 Radar 返回

export class MotivationtypeChart extends Component {
  constructor(props){
    super(props);
  }

  const getRadarData = () => {
    return this.props.scores.map((s,index) => {
      return {
        label: s.createdDate,data: [s.driveScore,s.volunteerScore,s.createScore,s.analyzeScore],backgroundColor: this.props.backgroundColors[index],borderColor: this.props.borderColor[index],borderWidth: 2
      };
    });
  };

  render(){
    return(
      <Radar
        data={{
          labels: ['Drive','Volunteer','Create','Analyze'],datasets:[...getRadarData()]
        }}
        height={400}
        width={500}
        options={{
          maintainAspectRation: false,scale: {
            grid: {
              display: false
            },beginAtZero: true,min: 0,max: 20,stepSize: 1,}
        }}
      />
    )
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?