【问题标题】:Unable to check the radio button and get the value of radio button无法检查单选按钮并获取单选按钮的值
【发布时间】:2020-07-14 13:16:29
【问题描述】:

我正在尝试从我的 MongoDB 数据库中获取数据并尝试在数据库中使用 React 显示数据我有 4 个名为 Ques、Ques_type、Ans 和 Options 的属性,其中选项是一个数组,现在我想为其创建单选按钮从数据库映射时的所有选项。我就是这样做的

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>
    )
  }

但是当我尝试选择单选按钮时,我无法检查它们,这意味着我无法在应答状态下存储任何内容。请帮帮我

【问题讨论】:

    标签: node.js reactjs mongodb


    【解决方案1】:

    我有类似的问题。使用 Checkboxradiogroup 的语义 ui-react 的 chekcbox 代替收音机。你可以在这里找到它https://react.semantic-ui.com/modules/checkbox/#types-radio-group

    <Checkbox
                label={currentquestion.options[0]}
                name='checkboxRadioGroup'
                id = {currentquestion._id}
                value ={currentquestion.options[0]}
                checked = {this.state.value === currentquestion.options[0]}
                onChange={this.handleOptionChange}
    
              /> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2019-10-05
      • 2013-06-14
      • 1970-01-01
      • 2013-09-04
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多