有几种方法可以在 React 组件中导入 JSON 数据:
- 使用 ES6 导入和导出
- 将 JSON 数据添加到文件
public
夹中的文件中,假设您使用 Create React App 初始化了项目,然后在您的componentDidMount()
方法中获取所述数据,最后将获取的数据添加到组件的状态中。
- 如果数据是静态的,您可以在初始化组件时将其添加到组件的状态中。
实施1:
在文件中添加您的 JSON 数据,例如People.js
:
const peopleData = [
{
"id": 1,
"firstname": "abc",
"lastname": "xyz",
"phone": "+91 789654123",
"email": "abcyz@gmail.com"
},
{
"id": 2,
"firstname": "def",
"lastname": "uvz",
"phone": "+91 123456987",
"email": "defvu@gmail.com"
}
];
export default peopleData;
然后在你的组件中,像这样导入它:
// myPeopleData will contain your json data
import myPeopleData from '<Relative_Path>/People.js';
有关 ES6 导入和导出的更多信息,请查看这个很棒的备忘单。
实施2:
- 在
public
包含 JSON 数据的目录中添加一个文件,假设它被称为people.json
- 在您的组件中,添加
componentDidMount()
生命周期方法,然后获取您的数据。
- 将获取的数据添加到组件的状态。
您的组件可能看起来像以下内容:
import React, { Component } from "react";
import { Container, Grid, Header, List } from "semantic-ui-react";
class MyComponent extends Component {
state = {
peopleData: []
};
componentDidMount() {
fetch('./people.json')
.then(response => response.json())
.then(data => this.setState({ peopleData: data }));
}
render() {
...
}
}
export default MyComponent;
最后,实现 3:
在您的组件中,只需添加您的数据作为其默认状态的一部分:
import React, { Component } from "react";
import { Container, Grid, Header, List } from "semantic-ui-react";
class MyComponent extends Component {
state = {
peopleData: [
{
"id": 1,
"firstname": "abc",
"lastname": "xyz",
"phone": "+91 789654123",
"email": "abcyz@gmail.com"
},
{
"id": 2,
"firstname": "def",
"lastname": "uvz",
"phone": "+91 123456987",
"email": "defvu@gmail.com"
}
]
};
render() {
...
}
}
export default MyComponent;
无论您采用何种方法导入 JSON 数据,您都需要在您的render()
方法中映射结果数组。有关Array.protoype.map()
方法的更多信息,请查看 MDN 的文档以及 React 的文档,以通过列表和渲染列表项进行映射。两者都是极好的资源。
希望这有帮助!