如何在React组件中循环遍历数组内对象的属性?

Ral*_*thy 2 javascript arrays loops object reactjs

这是我父组件的渲染功能:

  render() {
    const users = [
      'tom': {
        phone: '123',
        email: 'hotmail'
      },
      'rob': {
        phone: '321',
        email: 'yahoo'
      },
      'bob': {
        phone: '333',
        email: 'gmail'
      },
    ];

    const list = users.map((user) =>
      (<User
        name={user}
        phone={users.phone}
        email={users.email}
      />),
    );

    return <ul>{list}</ul>;
  }
Run Code Online (Sandbox Code Playgroud)

输出显示如下:

在此输入图像描述

这是Child组件的渲染功能:

  render() {
    const {
      name,
      phone,
      email,
    } = this.props;

    const info = [name, phone, email];

    const item = info.map((index) => (
      <li key={index}>
        { index }
      </li>
    ));

    return item;
  }
Run Code Online (Sandbox Code Playgroud)

如何通过电话号码和电子邮件显示它?不确定我做错了什么.谢谢.

mad*_*ox2 5

起初这是无效的javascript:

const users = [
  'tom': {
    phone: '123',
    email: 'hotmail'
  },
  // ...
];
Run Code Online (Sandbox Code Playgroud)

您应该定义数组或对象.假设你users是一个对象文字:

const users = {
  'tom': {
    phone: '123',
    email: 'hotmail'
  },
  // ...
};
Run Code Online (Sandbox Code Playgroud)

然后,您可以迭代对象的条目:

const list = Object.entries(users).map(([name, info]) =>
  (<User
    name={name}
    phone={info.phone}
    email={info.email}
  />)
);
Run Code Online (Sandbox Code Playgroud)

但是Object.entries()并非所有浏览器都支持,请检查它是否适用于您的环境.