我如何在React中将HTML表格单元格数据动态插入具有动态标题的表格中?

内森·琼斯(Nathan Jones)

我正在创建一个<table>带有React 0.14.6的列标题,该列标题被动态插入到的<thead><table>

CourseTable.js

import CourseList from './CourseList';
import GradesHeader from './GradesHeader';
import React, {Component} from 'react';

export default class CourseTable extends Component {
  /**
   * Gets all unique terms that have grades
   * @param courses {Array}
   * @return {Array}
   */
  getUniqueTerms(courses) {
    let uniqueTerms = [];
    courses.forEach(course => {
      if (course.grades) {
        Object.keys(course.grades).forEach(term => {
          if (uniqueTerms.indexOf(term) === -1) {
            uniqueTerms.push(term);
          }
        })
      }
    });
    return uniqueTerms;
  }

  createGradesHeaders(courses) {
    return this.getUniqueTerms(courses).map(term => {
      return (
        <th>
          <GradesHeader headerText={term}/>
        </th>
      );
    });
  }

  render() {
    let headers = this.createGradesHeaders(this.props.courses);
    return (
      <table className="table table-bordered table-condensed">
        <thead>
        <tr>
          <th>
            Period
          </th>
          <th>
            Class
          </th>
          <th>
            Term
          </th>
          <th>
            Date Enrolled
          </th>
          <th>
            Date Left
          </th>
          <th>
            <div>Absenses</div>
            <div>All (Excused)</div>
          </th>
          <th>
            Tardies
          </th>
          <th></th>
          {headers}
          <th>
            Teacher
          </th>
        </tr>
        </thead>
        <CourseList courseData={this.props.courses}/>
      </table>
    );
  }
}

GradesHeader.js

import React, {Component} from 'react';

export default class GradesHeader extends Component {
  render() {
    return (
      <div>
        {this.props.headerText}
      </div>
    );
  }
}

Course.js

import React, {Component} from 'react';

export default class Course extends Component {
  render() {
    const unexcused = !!this.props.courseData.attendance.unexcused ? this.props.courseData.attendance.unexcused : 0;
    const excused = !!this.props.courseData.attendance.excused ? this.props.courseData.attendance.excused : 0;
    const totalAbsences = unexcused + excused;
    return (
      <tr>
        <td>
          {this.props.courseData.expression}
        </td>
        <td>
          {this.props.courseData.course_name}
        </td>
        <td>
          {this.props.courseData.abbreviation}
        </td>
        <td>
          {this.props.courseData.dateenrolled}
        </td>
        <td>
          {this.props.courseData.dateleft}
        </td>
        <td>
          {totalAbsences}
          ({excused})
        </td>
          // Grades for this course go here
        <td>
        </td>
        <td>
          {this.props.courseData.lastfirst}
        </td>
      </tr>
    );
  }
}

您可以在CourseTable.js哪里动态地生成表的此部分的标题<thead>我对如何将每个年级的数据插入/插入相应的列感到困惑。

我认为我需要以某种方式标识<th>动态生成的每个标头元素,并在插入这些列时引用它们,但是我不确定如何。

托马斯·约翰森

如评论中所述,您应该使用状态。状态非常有用。ReactJS指出,如果您想添加新的标头,可以为其分配一个ID,以便在呈现新标头时可以正确地循环浏览它们。如前所述,应对状态变化做出反应。在facebook教程页面和文档中都有一些示例。

假设您将所有标头收集在一个对象中,或者它们可能来自数据库。

var headers = [{id: 0, name: grade}
               {id: 1, name: term}
]

因此,在head的render方法中,您可以像这样放置它们:

constructor(props) {
    super(props);
    this.state = {
        headers: headers,
    }
},

sortAlg(arr) {
    //Choose one, make one
},

render() {
this.sortAlg(this.state.headers);
var headerArr = [];
headers.forEach(function(header) {
    headerArr.push(<YourHeader header = {header} />
});
return (
  <table className="table table-bordered table-condensed">
    <thead>
        {headerArr}
    </thead>
    <CourseList courseData={this.props.courses}/>
  </table>
);

<YourHeader />是你做出更好的控制的组件。我至少喜欢这样。

希望对您有帮助,祝您好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何在React中将HTML表格单元格数据动态插入具有动态标题的表格中?

来自分类Dev

如何在iOS中创建具有动态表格视图高度的动态表格视图单元格

来自分类Dev

动态具有多个 colspan 的表格单元格

来自分类Dev

动态填充表格单元格时如何在表格单元格的底部定位 div

来自分类Dev

动态编辑html表格的单元格

来自分类Dev

如何在html中组成覆盖表格的单个单元格(具有自己的内容)的元素?

来自分类Dev

是否有前端开放库动态插入单元格到表格中?

来自分类Dev

如何动态合并表格中的单元格

来自分类Dev

如何动态填写表格中的单元格?

来自分类Dev

如果表格是动态生成的,如何在点击时更改html单元格的颜色?

来自分类Dev

如何在 ASP 中动态生成表格的单元格中设置文本的对齐方式?

来自分类Dev

如何在表格单元格中插入弹出窗口?

来自分类Dev

从Google表格中的动态表格获取单元格

来自分类Dev

如何在具有基本样式的表格视图单元格中将图像设置为右侧

来自分类Dev

如何在Google表格中动态设置单元格范围?

来自分类Dev

如何在AngularJS中动态更改表格单元格颜色

来自分类Dev

如何通过每行中的动态添加按钮更改HTML表格单元格的值

来自分类Dev

如何制定我的 for 循环代码以在特定的 html 表格单元格中插入值?

来自分类Dev

如何在HTML的两个表格单元格中插入昨天和今天的日期?

来自分类Dev

如何在React中取消点击表格单元格

来自分类Dev

在Google表格中的单元格的URL中插入动态值

来自分类Dev

插入到动态生成的表格单元格中时,无法识别锚标记

来自分类Dev

如何使用angularJS在HTML中制作具有4个单元格的表格

来自分类Dev

表格视图的动态单元格高度

来自分类Dev

Google表格/ Javascript:如何“获取”动态的单元格值?

来自分类Dev

如何在表格中动态插入行

来自分类Dev

Google表格:动态更改活动单元格中的值?

来自分类Dev

动态表格中的可编辑单元格

来自分类Dev

无法单击动态创建的表格单元格中的按钮

Related 相关文章

  1. 1

    我如何在React中将HTML表格单元格数据动态插入具有动态标题的表格中?

  2. 2

    如何在iOS中创建具有动态表格视图高度的动态表格视图单元格

  3. 3

    动态具有多个 colspan 的表格单元格

  4. 4

    动态填充表格单元格时如何在表格单元格的底部定位 div

  5. 5

    动态编辑html表格的单元格

  6. 6

    如何在html中组成覆盖表格的单个单元格(具有自己的内容)的元素?

  7. 7

    是否有前端开放库动态插入单元格到表格中?

  8. 8

    如何动态合并表格中的单元格

  9. 9

    如何动态填写表格中的单元格?

  10. 10

    如果表格是动态生成的,如何在点击时更改html单元格的颜色?

  11. 11

    如何在 ASP 中动态生成表格的单元格中设置文本的对齐方式?

  12. 12

    如何在表格单元格中插入弹出窗口?

  13. 13

    从Google表格中的动态表格获取单元格

  14. 14

    如何在具有基本样式的表格视图单元格中将图像设置为右侧

  15. 15

    如何在Google表格中动态设置单元格范围?

  16. 16

    如何在AngularJS中动态更改表格单元格颜色

  17. 17

    如何通过每行中的动态添加按钮更改HTML表格单元格的值

  18. 18

    如何制定我的 for 循环代码以在特定的 html 表格单元格中插入值?

  19. 19

    如何在HTML的两个表格单元格中插入昨天和今天的日期?

  20. 20

    如何在React中取消点击表格单元格

  21. 21

    在Google表格中的单元格的URL中插入动态值

  22. 22

    插入到动态生成的表格单元格中时,无法识别锚标记

  23. 23

    如何使用angularJS在HTML中制作具有4个单元格的表格

  24. 24

    表格视图的动态单元格高度

  25. 25

    Google表格/ Javascript:如何“获取”动态的单元格值?

  26. 26

    如何在表格中动态插入行

  27. 27

    Google表格:动态更改活动单元格中的值?

  28. 28

    动态表格中的可编辑单元格

  29. 29

    无法单击动态创建的表格单元格中的按钮

热门标签

归档