如何在 ReactJS 中使用单选按钮

发布日期:2026-07-15 10:51:04   来源 : 杭州电子商务研究院    浏览量 :2
杭州电子商务研究院 发布日期:2026-07-15 10:51:04  
2

介绍

在使用 Web 应用程序时,您可能需要使用各种表单控件(如文本框、复选框、下拉菜单、文件上传或单选按钮),以便使用 HTML 元素或 React 的第三方库(例如material-ui)

在本指南中,您将了解单选按钮的基础知识、如何在组中使用它以及如何在更改事件时访问选定的单选按钮值。

使用单选按钮组

单选按钮允许用户从多个单选按钮列表中选择一个选项并提交其值。

例如,下面是如何在没有表单的情况下使用单选按钮的方法:

      render() {
    return (
      <div>
        <input type="radio" value="Male" name="gender" /> Male
        <input type="radio" value="Female" name="gender" /> Female
        <input type="radio" value="Other" name="gender" /> Other
      </div>
    );
  }
    

在此示例中,有三个单选按钮和一个名为gender 的附加属性。

因为该名称属性将所有单选按钮放入一个组中,所以一旦用户选择其中任何一个,您就可以获取其值,如下所述。

      import React, { Component } from "react";

class Demo1 extends Component {
  constructor() {
    super();
    this.state = {
      name: "React"
    };
    this.onChangeValue = this.onChangeValue.bind(this);
  }

  onChangeValue(event) {
    console.log(event.target.value);
  }

  render() {
    return (
      <div onChange={this.onChangeValue}>
        <input type="radio" value="Male" name="gender" /> Male
        <input type="radio" value="Female" name="gender" /> Female
        <input type="radio" value="Other" name="gender" /> Other
      </div>
    );
  }
}

export default Demo1;
    

函数onChangeValue()与div附加在一起,因此只要用户选择任何单选按钮,它就会反映在函数中。

在表单中使用单选按钮组

前面的示例使用了带有更改操作的单选按钮,但您也可以使用带有表单的单选按钮组。

设置一个带有像这样的单选按钮组的表单。

      render() {
    return (
      <form onSubmit={this.formSubmit}>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Male"
              checked={this.state.selectedOption === "Male"}
              onChange={this.onValueChange}
            />
            Male
          </label>
        </div>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Female"
              checked={this.state.selectedOption === "Female"}
              onChange={this.onValueChange}
            />
            Female
          </label>
        </div>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Other"
              checked={this.state.selectedOption === "Other"}
              onChange={this.onValueChange}
            />
            Other
          </label>
        </div>
        <div>
          Selected option is : {this.state.selectedOption}
        </div>
        <button className="btn btn-default" type="submit">
          Submit
        </button>
      </form>
    );
  }
    

正如您在上面的示例中看到的,表单中有三个不同的单选按钮以及提交按钮,并且每个单选按钮都附加一个onChange函数,称为onValueChange()

      onValueChange(event) {
    this.setState({
      selectedOption: event.target.value
    });
  }
    

当用户从组中选择单选按钮时,将调用 onChangeValue() 函数,并将值更新到组件状态

当用户完成选择后,他们可能想要提交表单。提交方法称为formSubmit()

      formSubmit(event) {
    event.preventDefault();
    console.log(this.state.selectedOption)
  }
    

一旦用户提交表单,将状态值传递给 API 端点以发布或更新数据。

完整的示例应如下所示。

      import React, { Component } from "react";

class Demo2 extends Component {
  constructor() {
    super();
    this.state = {
      name: "React"
    };
    this.onValueChange = this.onValueChange.bind(this);
    this.formSubmit = this.formSubmit.bind(this);
  }

  onValueChange(event) {
    this.setState({
      selectedOption: event.target.value
    });
  }

  formSubmit(event) {
    event.preventDefault();
    console.log(this.state.selectedOption)
  }

  render() {
    return (
      <form onSubmit={this.formSubmit}>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Male"
              checked={this.state.selectedOption === "Male"}
              onChange={this.onValueChange}
            />
            Male
          </label>
        </div>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Female"
              checked={this.state.selectedOption === "Female"}
              onChange={this.onValueChange}
            />
            Female
          </label>
        </div>
        <div className="radio">
          <label>
            <input
              type="radio"
              value="Other"
              checked={this.state.selectedOption === "Other"}
              onChange={this.onValueChange}
            />
            Other
          </label>
        </div>
        <div>
          Selected option is : {this.state.selectedOption}
        </div>
        <button className="btn btn-default" type="submit">
          Submit
        </button>
      </form>
    );
  }
}

export default Demo2;
    

这个完整的示例在表单中使用了一个单选按钮组。一旦用户提交表单,该值将用于 API 端点通信。单选按钮的checked属性负责在从当前状态中找到合适的值后将其选中。

来自第三方库的单选按钮

您可以使用类型为单选按钮的 HTML 输入。如果您需要使用不同的样式,请使用一些提供单选按钮元素的第三方库:

  • 材质界面
  • react-radio-buttons
  • react-radio-button
  • react-radio-button-group
  • react-radio-group

结论

本指南解释了如何将单选按钮作为一个组使用、如何将它们与表单元素一起使用、以及在何处可以找到来自各种第三方来源的单选按钮。

这就是使用单选按钮组管理表单的强大之处。如果您有任何疑问,请随时联系Codealphabet

了解更多

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据