【问题标题】:Trouble mapping an array to JSX - Unexpected token将数组映射到 JSX 时遇到问题 - 意外的令牌
【发布时间】:2017-06-26 05:10:45
【问题描述】:

我在使用 ReactJS 和 JSX 将 employees 数组映射到新数组时遇到问题。 我的返回方法出了点问题。注意:React 和 ES6 的极限初学者。

如何让它工作?

这是我的代码:[live version on jsfiddle]

class EmployeesTable extends React.Component {
  render() {

const employees = [{
  name: 'John',
  age: 34
}, {
  name: 'Mary',
  age: 23
}, {
  name: 'Tom',
  age: 100
}];

    return ({
      employees.map(employee => { <ul>
          <li> {
            employee.name
          } </li> </ul>
      });
    });

  }
};

class Directory extends React.Component {
  render() {
    return ( < section >
      < h1 > Hello World < /h1> < EmployeesTable / >
      < /section>
    )
  }
}
ReactDOM.render( <Directory / > , document.getElementById('directory'));

【问题讨论】:

  • 固定小提琴链接到最新版本
  • return ({...}); 表示应该返回一个 object ({...} 是一个对象字面量。您不能将任意函数调用放在对象字面量内(即({ foo() }) 是无效)。这与 JSX 无关。

标签: javascript arrays reactjs ecmascript-6 jsx


【解决方案1】:
   return  (<div>
      {employees.map(employee => ( 
         <ul>
          <li> {employee.name  } </li> 
        </ul>
       )
    )}
    </div>
   )

不是

   return ({
      employees.map(employee => { <ul>
          <li> {
            employee.name
          } </li> </ul>
      });
    });

class EmployeesTable extends React.Component {
  render() {
    let employees = [{
  name: 'John',
  age: 34
}, {
  name: 'Mary',
  age: 23
}, {
  name: 'Tom',
  age: 100
}];

  	 employees = employees.map((employee, index) => (
    	<ul key={index}><li >{ employee.name }</li><li>{employee.age}</li></ul>
    ));
    return (<div>{employees}</div>);
  
  
	}
};

class Directory extends React.Component {
  render() {
    return (
    	<section>
        <h1>Hello World</h1>
        <EmployeesTable />
      </section>
    )
  }
}


ReactDOM.render(
	<Directory  /> , 
  document.getElementById('directory')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<aside id="directory"></aside>

【讨论】:

  • 更多需要ES6预设
  • 请检查答案下方的代码sn-p。谢谢。
  • React 组件的渲染函数必须返回元素,不能返回数组。
  • @FelixKling:我把它放在代码 sn-p 中并在那里错过了它。谢谢你的来信
猜你喜欢
  • 2019-11-26
  • 1970-01-01
  • 2020-09-12
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 2021-09-06
  • 1970-01-01
相关资源
最近更新 更多