React foreach в JSX

у меня есть объект, который я хочу вывести через REACT

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

и мой компонент react (сокращение) - это еще один компонент

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;

Как вы можете видеть из приведенного выше фрагмента, я пытаюсь вставить массив ответа компонента, используя ответы массива в реквизите, он делает itterate, но не выводится в HTML.

1 ответов


вам нужно передать массив элемента в jsx. Проблема в том, что forEach ничего не возвращает (i.e он возвращает undefined). Так что лучше использовать map потому что он возвращает массив такой

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;