未创建React.js组件

时间:2018-11-24 04:42:47

标签: javascript reactjs

我有一个要显示在表中的对象数组。 我有以下代码

class Table extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: this.props.data
    };
  }

  render() {
    return (
      <table>
          {this.state.data.map(row => {
            console.log(row);
            <Test/>
          })}
      </table>
    );
  }
}

class Test extends React.Component {
  constructor(props) {
    super(props);
    console.log("7");
  }

  render() {
    return;
  }
}

中的 console.log()可以正确打印我的所有数据,但是,我的 console.log() Test 构造函数从不打印。
为什么没有创建 Test


我的适当行如下:

class Rows extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: this.props.rowData
    };

    console.log("2");
  }

  render() {
    return (
      <tr>
        <td>{this.state.data.paymentFrom}</td>
        <td>{this.state.data.paymentTo}</td>
        <td>{this.state.data.paymentPeriod}</td>
        <td>{this.state.data.paymentAmount}</td>
      </tr>
    );
  }
}

2 个答案:

答案 0 :(得分:2)

要使Test组件正确呈现,必须返回该组件,如果它永远不会在函数主体上返回,则永远不会打印。

尝试这种方式:

class Table extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: this.props.data
    };
  }

  render() {
    return (
      <table>
          {this.state.data.map(row => {
            console.log(row);

            return (<Test/>)
          })}
      </table>
    );
  }
}

class Test extends React.Component {
  constructor(props) {
    super(props);
    console.log("7");
  }

  render() {
    return;
  }
}

答案 1 :(得分:1)

您需要return <Test/>才能启动和呈现。