【发布时间】:2018-01-26 17:49:14
【问题描述】:
我有一个组件要渲染四次,每次都使用不同的道具。为了让我的代码更简洁一点,而不是每次都为组件及其 props 写出 JSX,我尝试使用 map 来创建组件的不同实例。现在,它是这样的:
import React, { Component } from 'react';
import Panel from './components/Panel';
import Results from './components/Results';
import Intro from './components/Intro';
const questionsMap = [0, 1, 2, 3];
class React extends Component {
constructor (props) {
super (props);
this.state = {
questions: ['question1', 'question2', 'question3', 'question4'],
answers: ['answers1', 'answers2', 'answers3', 'answers4']
}
this.onSelect = this.onSelect.bind(this);
}
onSelect(value) {
/* Some code for when buttons are clicked */
}
render () {
return (
<Intro />
{questionsMap.map(i => {
return <Panel question={this.state.questions.i} answers={this.state.answers.i} onSelect={this.onSelect} />
})}
<Results />
);
}
}
export default App;
现在我收到一个Unexpected token 错误,指向我的渲染下以{questionsMap.map()} 开头的行,也就是我尝试实际执行我提到的映射的部分。我假设我使用错误的语法来完成我想要的?
【问题讨论】:
-
因为你不想为你的类命名为 React。使用类 PanelContainer 扩展 React.Component
-
只返回一个元素。将其包装在 div 或其他东西中。
标签: javascript reactjs