Je suis nouveau pour réagir. Je ne sais pas comment importer des données json dans l'un de mes composants.
Voici mes données json:
[
{
"id": 1,
"firstname": "abc",
"lastname": "xyz",
"phone": "+91 789654123",
"email": "[email protected]"
},
{
"id": 2,
"firstname": "def",
"lastname": "uvz",
"phone": "+91 123456987",
"email": "[email protected]"
}
]
Voici la liste des composants:
<Container>
<Grid>
<Grid.Row>
<Grid.Column>
<Header>List</Header>
<List>
<List.Item block>
<List.Content>FirstName and Last Name</List.Content>
<List.Content>Phone</List.Content>
</List.Item>
</List>
</Grid.Column>
</Grid.Row>
</Grid>
</Container>
Quelqu'un peut-il m'aider à afficher la liste? Merci d'avance
Si vous souhaitez importer ces données dans votre composant à partir d'un autre fichier, vous pouvez essentiellement exporter l'objet où les données existent.
data.js
export default [
{
"id": 1,
"firstName": "abc",
"lastName": "xyz",
},
{
"id": 2,
"firstName": "def",
"lastName": "uvz",
}
]
Dans votre composant React, vous pouvez ensuite importer vos données JSON en faisant
import data from './data.js'
Vous devrez parcourir vos données json pour transmettre les informations nécessaires à votre composant
{data.map(person => {
return (
<List.Item block key={person.id}>
<List.Content>
{person.firstName} and {person.lastName}
</List.Content>
<List.Content>{person.phone}</List.Content>
</List.Item>
)
})}
Attention! Les éléments de la liste ont également besoin d'une propriété de clé, sinon réagir réagirait avec une erreur
Cela va créer un List.Item
composant pour chaque entrée de données que vous avez concernant les personnes, puis en accédant aux objets firstName
, lastName
, phone
sur une personne, vous pourrez transmettre ces données à votre composant.
Exemple
constructor(props) {
super(props);
this.state = {
loadedList: [],
lists: [],
};
}
componentDidMount() {
// after 3001/ write your .json file directory
axios.get('http://localhost:3001/../static/data/terrifdata.json')
.then(response => {
this.setState({
lists: response.data,
loadedList: response.data,
isLoading: false
})
})
}
<div>
{loadedList.map((postDetail, index) => {
return (
<h5>
{postDetail.name}
</h5>
)}
}
</div>
Il existe plusieurs façons d'importer des données JSON dans un composant React:
public
, en supposant que vous avez initialisé votre projet avec Create React App, puis récupérez lesdites données dans votre méthode componentDidMount()
, et enfin ajoutez les données extraites à l'état de votre composant.Implémentation 1:
Ajoutez vos données JSON dans un fichier, par exemple People.js
:
const peopleData = [
{
"id": 1,
"firstname": "abc",
"lastname": "xyz",
"phone": "+91 789654123",
"email": "[email protected]"
},
{
"id": 2,
"firstname": "def",
"lastname": "uvz",
"phone": "+91 123456987",
"email": "[email protected]"
}
];
export default peopleData;
Ensuite, dans votre composant, importez-le comme ceci:
// myPeopleData will contain your json data
import myPeopleData from '<Relative_Path>/People.js';
Pour plus d'informations sur les importations et les exportations ES6, consultez cet excellent cheatsheet .
Implémentation 2:
public
contenant vos données JSON, supposons qu'il s'appelle people.json
componentDidMount()
puis récupérez vos données.Votre composant pourrait ressembler à quelque chose comme:
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;
Enfin, Implémentation 3 :
Dans votre composant, ajoutez simplement vos données dans le cadre de son état par défaut:
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": "[email protected]"
},
{
"id": 2,
"firstname": "def",
"lastname": "uvz",
"phone": "+91 123456987",
"email": "[email protected]"
}
]
};
render() {
...
}
}
export default MyComponent;
Quelle que soit l'approche que vous adoptez pour importer vos données JSON, vous devrez mapper via votre tableau résultant dans votre méthode render()
. Pour plus d'informations sur la méthode Array.protoype.map()
, consultez les MDN documentation ainsi que React's Documentation pour le mappage à travers les listes et le rendu des éléments de liste. Les deux sont des ressources fantastiques.
J'espère que cela aide!