Les gars je suis un peu confus ici sur la façon d'obtenir un seul tableau sur l'état.
En ce moment, voici comment je définit l'état p> Mais ceci est la sortie que je reçois, p> ou p> donc j'avais dans Photodata les catégories que je Besoin, mais une fois que je les ai mis à l'intérieur de l'état.catégories, ils viennent sur un tableau séparé. P> Comment puis-je avoir un objet ou une matrice avec les catégories et retirer le duplicata aussi bien? P> Merci P> P>
4 Réponses :
Ce serait correct. Et n'utilisez pas composantwillmount code> pour les effets secondaires. Utilisez
composentDidMount code> et état par défaut avec une matrice vide par exemple
componentWillMount() {
axios.get(`api/photo-data`).then(res => {
this.setState({photoData:res.data})
this.state.photoData.map((value, idx) => (
value.map((val, idx) => (
this.setState({categories:[val.field_categories]})
))
))
})
}
Vous venez de copier un composant à la fois copié pour une question originale.
Pour aplatir la matrice, vous pouvez utiliser l'opérateur de diffusion lors de la mise à jour de l'état. E.G.
const uniqueCategoriesArray = [...uniqueCategories];
Merci, j'essaie d'accomplir quelque chose de similaire, mais je ne trouve pas le moyen de régler l'état correctement, je pense que parce que je fixe l'état dans la carte, c'est pourquoi je reçois plusieurs valeurs au lieu d'un tableau
Pourquoi ne définissez-vous pas de variables à ce que vous voulez d'abord, puis définissez l'état après? Peut rendre votre code nettoyeur de code et vous aider à comprendre ce qui se passe mieux
Vous ne devez pas utiliser de composantwillmount plus A ... //reactjs.org/docs/react-component.html#setstetate "rel =" nofollow Noreferrer "> Callback . P>
Toutefois; Dans votre code, vous pouvez définir l'état des photodata et des catégories en une fois: p>
Merci frère, compris et travaillé parfaitement, en utilisant des variables est plus facile à travailler avec les données,
Merci gars, j'ai travaillé plus avec des variables et cela a fonctionné super!
componentDidMount() { axios.get(`https://brittdepetter.com/api/photo-data`).then(res => { const photoData = [res.data]; const categoryList = res.data.map(val => val.field_categories); const categories = [...new Set(categoryList)]; this.setState({ photoData, categories}); }) }