web-dev-qa-db-fra.com

React foreach dans JSX

J'ai un objet que je veux sortir via REACT

question = {
    text: "Is this a good question?",
    answers: [
       "Yes",
       "No",
       "I don't know"
    ]
} 

et mon composant de réaction (coupé), est un autre composant

class QuestionSet extends Component {
render(){ 
    <div className="container">
       <h1>{this.props.question.text}</h1>
       {this.props.question.answers.forEach(answer => {     
           console.log("Entered");  //This does ifre                       
           <Answer answer={answer} />   //THIS DOES NOT WORK 
        })}
}

export default QuestionSet;

comme vous pouvez le voir dans l'extrait ci-dessus, j'essaie d'insérer un tableau du composant Answer en utilisant le tableau Answers dans les propriétés, il est itératif mais n'est pas sorti en HTML.

47
michael

Vous devez passer un tableau d'éléments à jsx. Le problème est que forEach ne renvoie rien (c.-à-d. Qu'il retourne undefined). Il vaut donc mieux utiliser map car il retourne un tableau comme celui-ci

class QuestionSet extends Component {
render(){ 
    <div className="container">
       <h1>{this.props.question.text}</h1>
       {this.props.question.answers.map((answer, i) => {     
           console.log("Entered");                 
           // Return the element. Also pass key     
           return (<Answer key={i} answer={answer} />) 
        })}
}

export default QuestionSet;
95
Prakash Sharma