0
votes

Réagir de la carte sur l'objet Array

Je suis assez nouveau avec réact de choses, ce que j'essaie, c'est de générer des choses dynamiques à l'aide de .Map ()

Ceci est mon composant: P>

import React, { Component } from "react";

class DynamicStuff extends Component {
  state = {
    options: [
      { id: 1, optionOne: "OptionOne" },
      { id: 2, optionTwo: "OptionTwo" },
      { id: 3, optionThree: "OptionThree" }
    ]
  };
  render() {
    const options = [...this.state.options];
    
    return (
      <>
      {options.map((option) => {
        return {option}
      })}
        <span>{options.optionOne}</span>
        <span>{options.optionTwo}</span>
        <span>{options.optionThree}</span>
      </>
    );
  }
}

export default DynamicStuff;


1 commentaires

Normalement, les objets dans la matrice ont les mêmes clés, mais ici, ils sont options, optionTwo, optionThree. Êtes-vous sûr que l'objet est correct?


5 Réponses :


2
votes

est-ce que ça va? XXX


2 commentaires

Votre portée doit être enveloppée à l'intérieur de la méthode de la carte, lors de sa boucle à chaque fois, chaque portée avec {option.value} s'affiche


Comme il existe un seul paramètre et une seule ligne à revenir, vous pouvez rationaliser la fonction flèche vers Options.map (option => ( {option.value} ))



1
votes

Vous avez mal effectué votre objet d'options. Nous devons avoir un même attribut sur tous les objets de la matrice.

class App extends React.Component {
  state = {
   options: [
  { id: 1, option: "OptionOne" },
  { id: 2, option: "OptionTwo" },
  { id: 3, option: "OptionThree" }
 ]
  };
  render() {
   const options = [...this.state.options];

  return (
    <>
      {options.map((option, index) => (
        <li key={index}>{option.option}</li>
       ))}
      </>
    );
 }
}


0 commentaires

1
votes

La carte utilisée ici est en fait pour convertir l'objet JS en un élément de réact, mais votre utilisation ici est toujours un objet JS après la conversion de la carte. L'élément de réact peut être un

{option. Optionone} p> code>. S'il y a un élément de réact après le retour dans votre carte, il est correct. XXX PRE>

ou P>

{options.map((option) =>  <p key = {option.id}> {option. optionOne} </p>)}


0 commentaires

1
votes

Vous devez mapper et renvoyer l'élément HTML

p>

return ({
  options.map((option) => {
    return `<span key={option.id}>${option. option}</span>`
  })
});


0 commentaires

1
votes

Vous devriez faire quelque chose comme xxx


0 commentaires