javascript - 映射状态数组不返回组件(ReactJS)

标签 javascript json reactjs

我正在尝试为 JSON 数据集中的每个用户呈现一个 UserItem 组件。页面呈现没有错误,但没有输出 UserItem。另一双眼睛将不胜感激。

我的应用程序/src/assets/data/data.json

{
  "data": [
    {
      "name": "Bart",
      "age": 10
    },
    {
      "name": "Lisa",
      "age": 8
    },
    {
      "name": "Maggie",
      "age": 2
    }
  ]
}

我的应用程序/src/assets/components/UserList.js

import React from 'react';
import { UserItem } from './UserItem';

import importedData from '../data/data.json';

export class UserList extends React.Component {
  constructor(props){
    super(props);

    this.state={
      users: []
    };
 }

  componentWillMount() {
    this.setState({users: importedData.data});
    this.setState(this.state);
  }

  render () {
    return (
        <div className="user-list">
          <ul>
            {
              this.state.users.map((user) => {
                return <UserItem name={user.name} age={user.age} />
              )}
            }
          </ul>
        </div>
    );
  }
}

export default UserList;

我的应用程序/src/assets/components/UserItem.js

import React from 'react';

export class UserItem extends React.Component {
    render () {
    return (
      <li className="user-item">
        <div className="name">{this.props.user.name}</div>
        <div className="age">{this.props.user.age}</div>
      </li>
    );
  }
}

export default UserItem;

呈现的 HTML

  <div class="user-list">
    <ul></ul>
  </div>

最佳答案

您应该删除两个 js 文件中类之前的关键字 export,因为您在最后一行导出了它们。 this.setState(this.state); 也毫无用处。在 UserItem.js 中,您编写 this.props.user.name/age 并将名称和年龄作为 Prop 传递。所以:

import React from 'react';

class UserItem extends React.Component {
    render () {
        return (
          <li className="user-item">
            <div className="name">{this.props.name}</div>
            <div className="age">{this.props.age}</div>
          </li>
        );
    }
}

export default UserItem;

关于javascript - 映射状态数组不返回组件(ReactJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49100467/

相关文章:

javascript - 更改设置在 HTML 对象背景的 SVG 文件的颜色

javascript - 为什么 oembed 不显示 youtube 视频?

javascript - csvtojson node.js(合并两个代码)

java - 在 Json : What exactly is a "direct self-reference"

javascript - 参数 '' 不是函数,在 Kendo ( AngularJS ) 中未定义

JavaScript: 'Document' 和 'HTML' 有什么区别

java - 如何将 JSON 对象从 Javascript 传递到 Java

reactjs - create-react-app:npm 开始不起作用,找不到 react 脚本

javascript - 如何在 React Native 中对 Flatlist 数组中的单个项目进行动画处理

reactjs - 在 React App 中添加对 IconProps 的函数引用