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;