循环遍历 React 中的简单对象数组

IT技术 javascript reactjs
2021-04-21 02:10:59

我没有使用 JSX。这是一个问题吗?这被认为是不好的做法吗?

var links = [
  { endpoint: '/america' },
  { endpoint: '/canada' },
  { endpoint: '/norway' },
  { endpoint: '/bahamas' }
];

class Navigation extends React.Component {
  render() {
    return (
      <div className="navigation">
        <ul>
          const listItems = links.map((link) =>
            <li key={link.endpoint}>{link.endpoint}</li> 
          );
        </ul>
      </div>
    );
}

基于react文档的基本列表组件部分,我似乎应该能够打印数组的内容,就像我在我的 <ul></ul>

https://facebook.github.io/react/docs/lists-and-keys.html#basic-list-component

是我使用对象数组的问题吗?文档使用了一个简单的数组。我很感激朝着正确的方向前进。

2个回答

问题是你的语法无效,你应该有这样的东西:

var links = [
  { endpoint: '/america' },
  { endpoint: '/canada' },
  { endpoint: '/norway' },
  { endpoint: '/bahamas' }
];

class Navigation extends React.Component {
  render() {
    const listItems = links.map((link) =>
        <li key={link.endpoint}>{link.endpoint}</li> 
    );
    return (
      <div className="navigation">
        <ul>
          {listItems}
        </ul>
      </div>
    );
}
杰出的!谢谢。无论如何在forEach这里使用旧吗?
2021-05-26 02:10:59
@Volatil3 是的,我假设您可以这样做,但是我发现 Array.prototype.map 更易于使用: const listItems = []; links.forEach(function (link) { listItems.push(<li>${link.endpoint}</li>); });
2021-06-09 02:10:59

你应该能够做这样的事情:

    class Navigation extends React.Component {
      render() {
        return (
          <div className="navigation">
            <ul>
              {
                links.map(link =>
                  <li key={link.endpoint}>{link.endpoint}</li> 
                )
              }
            </ul>
          </div>
        );
    }
这也有效,只需删除右map();括号后的分号谢谢
2021-06-02 02:10:59