相关疑难解决方法(0)

如何在React的另一个return语句中返回多行JSX?

单线工作正常

render: function () {
  return (
    {[1,2,3].map(function (n) {
      return <p>{n}</p>
    }}
  );
}
Run Code Online (Sandbox Code Playgroud)

不是多行

render: function () {
  return (
    {[1,2,3].map(function (n) {
      return (
        <h3>Item {n}</h3>
        <p>Description {n}</p>
      )
    }}
  );
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

reactjs

93
推荐指数
5
解决办法
8万
查看次数

如何渲染重复的React元素?

我写了一些代码来渲染ReactJS中的重复元素,但我讨厌它是多么丑陋.

render: function(){
  var titles = this.props.titles.map(function(title) {
    return <th>{title}</th>;
  });
  var rows = this.props.rows.map(function(row) {
    var cells = [];
    for (var i in row) {
      cells.push(<td>{row[i]}</td>);
    }
    return <tr>{cells}</tr>;
  });
  return (
    <table className="MyClassName">
      <thead>
        <tr>{titles}</tr>
      </thead>
      <tbody>{rows}</tbody>
    </table>
  );
} 
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标?

(我想for在模板代码中嵌入循环,或者类似的方法.)

javascript reactjs

77
推荐指数
3
解决办法
11万
查看次数

如何包装一个返回多个表行的React组件,并避免"<tr>不能显示为<div>的子项"错误?

我有一个名为OrderItem的组件,它接受一个包含多个对象(至少两个)的对象,并将它们呈现为表中的多个行.表中将有多个OrderItem组件.问题是在组件的渲染功能中,我不能返回多行.我只能返回一个组件,如果我将它们包装在一个div中,它会说" <tr>不能作为一个孩子出现<div>"

代码看起来像这样(为了更容易阅读,我留下了一些东西)

Parent() {
  render() {
    return (
      <table>
        <tbody>
          {
            _.map(this.state.orderItems, (value, key) => {
              return <OrderItem value={value} myKey={key}/>
            })
          }
        </tbody>
      </table>
    )
  }
}

class OrderItem extends React.Component {
  render() {
    return (
      <div> // <-- problematic div
        <tr key={this.props.myKey}>
          <td> Table {this.props.value[0].table}</td>
          <td> Item </td>
          <td> Option </td>
        </tr>
        {this.props.value.map((item, index) => {
          if (index > 0) { // skip the first element since it's already used above
            return (
              <tr key={this.props.myKey …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

46
推荐指数
4
解决办法
3万
查看次数

标签 统计

reactjs ×3

javascript ×2