我想显示选中的按钮的值是否与数据库中的答案相同,同时渲染数据库中的数据时,我有一个名为且具有正确答案的值的变量。
此外,我能够获取所选单选按钮的值。我想根据无线电值是否与正确答案相同来渲染两个div,但我不知道该怎么做。
import React, { Component } from 'react';
import axios from 'axios'
import {Form,Radio,} from 'semantic-ui-react'
import 'semantic-ui-css/semantic.min.css';
export default class QuestionList extends Component {
constructor(props){
super(props)
this.handleOptionChange = this.handleOptionChange.bind(this);
this.handleFormSubmit = this.handleFormSubmit.bind(this);
this.state = {questions:[],
answer:''}
}
handleOptionChange(e){
this.setState({
answer: e.target.value
});
}
handleFormSubmit (e) {
e.preventDefault();
console.log('You have selected:', this.state.answer);
}
componentDidMount(){
axios.get('http://localhost:5000/question/')
.then(respose =>{
this.setState({questions:respose.data})
})
.catch(error => {
console.log(error);
});
};
questionList() {
return this.state.questions.map(currentquestion => {
return(
<Form onSubmit ={this.handleFormSubmit}>
<Form.Field>
<h3>Q. {currentquestion.ques}</h3>
<h6>Correct Answer is {currentquestion.ans} </h6>
</Form.Field>
<Form.Field>
<Radio
label={currentquestion.options[0]}
name='radioGroup'
value ={currentquestion.options[0]}
checked = {this.state.answer === currentquestion.options[0]}
onChange={this.handleOptionChange}
/>
</Form.Field>
<Form.Field>
<Radio
label={currentquestion.options[1]}
name='radioGroup'
value ={currentquestion.options[1]}
checked = {this.state.answer === currentquestion.options[1]}
onChange={this.handleOptionChange}
/>
</Form.Field>
<Form.Field>
<Radio
label={currentquestion.options[2]}
name='radioGroup'
value = {currentquestion.options[2]}
checked = {this.state.answer === currentquestion.options[2]}
onChange={this.handleOptionChange}
/>
</Form.Field>
<Form.Field>
<Radio
label={currentquestion.options[3]}
name='radioGroup'
value={currentquestion.options[3]}
checked = {this.state.answer === currentquestion.options[3]}
onChange={this.handleOptionChange}
/>
</Form.Field>
<button type ="submit" class="ui button" >Submit Answer</button>
<hr />
</Form>
);
})
}
render() {
return (
<div>
<h2>Questions</h2>
<hr />
<hr />
<p>{ this.questionList() } </p>
</div>
)
}
但是当我尝试选择单选按钮时,我无法对其进行检查,这意味着我无法在应答状态下存储任何内容。
答案 0 :(得分:1)
semantic-ui
中的 onChange
带有两个参数(e,值),如果您在console.log
中将handlechange
的值放在这里,则为您应该在状态中输入的值,可以在documentation
的{{3}}内的游乐场中尝试使用
希望这会有所帮助。