Привет всем! Я новичок в React и работаю над созданием простенького Quiz-виджета, но столкнулся с проблемой: нужно добавлять в массив ответов результат, который хранится в выбранной радиокнопке. Пишу на ReactJS. Заранее благодарен за помощь. Пример кода:
class Results extends React.Component {
constructor(props) {
super(props);
this.state = {
isStarting: false
}
}
checkRes = () => {
this.setState({
isStarting: true
})
}
render = () => {
const { isStarting } = this.state;
});
if (!isStarting) {
return (
<div>
<h1>Результаты голосования:</h1>
<p>.........</p> // Answers massive
<button type="submit" onClick={this.checkRes}>Начать заново</button>
</div>
);
}
return <Question1 />
}
}
class Question1 extends React.Component {
constructor (props) {
super(props);
this.state = {
isStarting: false,
option: 'Выберите ответ' // Next time change this parameter
}
}
ansQ1 = () => {
this.setState({
isStarting: true
})
}
handleRadioChange(event) {
this.setState({option: event.target.value});
}
render = () => {
const { isStarting } = this.state;
if (!isStarting) {
return (
<div>
<p>Какое мороженое вы предпочитаете?</p>
<p>Ваш выбор: {this.state.option}</p>
<input
name="var1"
type="radio"
value="Пломбир"
checked={this.state.option == 'Пломбир'}
onChange={this.handleRadioChange.bind(this)}
/><span>Пломбир</span><br />
<input
name="var2"
type="radio"
value="Шоколадное"
checked={this.state.option == 'Шоколадное'}
onChange={this.handleRadioChange.bind(this)}
/><span>Шоколадное</span><br />
<input
name="var3"
type="radio"
value="Фисташковое"
checked={this.state.option == 'Фисташковое'}
onChange={this.handleRadioChange.bind(this)}
/><span>Фисташковое</span><br />
<button type="submit" onClick={this.ansQ1}>Далее</button>
</div>
);
}
return <Results />
}
class App extends React.Component {
render () {
return (
<Question1 />
);
}
}
export default App;