首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >两个Material-UI单选按钮均已选中

两个Material-UI单选按钮均已选中
EN

Stack Overflow用户
提问于 2020-09-21 17:55:20
回答 2查看 531关注 0票数 0

我有一个渲染RadioGroup、FormControlLabel和FormControl的文件。下面是这方面的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import PropTypes from 'prop-types';
import Radio from '@material-ui/core/Radio';
import RadioGroup from '@material-ui/core/RadioGroup';
import FormControl from '@material-ui/core/FormControl';
import FormLabel from '@material-ui/core/FormLabel';
import FormControlLabel from '@material-ui/core/FormControlLabel';

export const RenderRadioGroup = ({ label, children }) => {
  return (
    <FormControl>
      <FormLabel
        style={{
          margin: '20px 0 20px 0',
          color: '#000000',
          fontSize: '20px',
          fontWeight: 'bold',
        }}
      >
        {label}
      </FormLabel>
      <RadioGroup row>{children}</RadioGroup>
    </FormControl>
  );
};

export const RenderRadioButtonWrapper = props => {
  return <FormControlLabel control={<CustomRadioButton />} {...props} />;
};

export const CustomRadioButton = props => {
  return <Radio {...props} />;
};

RenderRadioGroup.propTypes = {
  children: PropTypes.node.isRequired,
  label: PropTypes.string,
};

RenderRadioButtonWrapper.propTypes = {
  label: PropTypes.string,
};

CustomRadioButton.propTypes = {
  label: PropTypes.string,
};

在主文件中,我按如下方式调用这些组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <form>
       <Field
           name="typeofintimation"
           label="Type of intimation"
           component={RenderRadioGroup}
        >
                <Field
                  label="Via Call"
                  name="viacall"
                  value="viacall"
                  component={RenderRadioButtonWrapper}
                />
                <Field
                  label="Via Email"
                  name="viaemail"
                  value="viaemail"
                  component={RenderRadioButtonWrapper}
                />
              </Field>
              <Field component={renderTextFieldGroup} label="Caller Details">
                <Field component={renderTextField} label="Caller Name" />
                <Field component={renderTextField} label="Caller Email" />
                <Field component={renderTextField} label="Caller Contact" />
              </Field>
            </form>

我正在获取无线字段,但两个字段都已选中。我无法选择或取消选择单选按钮。这里我漏掉了什么?有没有一些道具需要我在组件或主文件中传递?

我在这里也使用redux-form,所以我需要一些辅助。

EN

回答 2

Stack Overflow用户

发布于 2020-09-21 20:31:55

您需要在属性中显式地提供一个名称,以便系统知道这两个单选按钮属于同一组。API在其属性列表中的文档中写道:

name string用于引用控件的值的名称。如果你不提供这个属性,它会返回到一个随机生成的名字。

完整列表请参见https://material-ui.com/api/radio-group/

单选按钮是按名称分组的-因此,如果您单击组中的一个按钮,所有其他按钮都会被清除。您有两个单选按钮,但它们具有不同的名称,因此系统认为它们位于不同的组中,因此都可以选中。

如果您尝试替换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <Field
          label="Via Call"
          name="viacall"
          value="viacall"
          component={RenderRadioButtonWrapper}
        />
        <Field
          label="Via Email"
          name="viaemail"
          value="viaemail"
          component={RenderRadioButtonWrapper}
        />

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            <Field
              label="Via Call"
              name="viamethod"
              value="viacall"
              component={RenderRadioButtonWrapper}
            />
            <Field
              label="Via Email"
              name="viamethod"
              value="viaemail"
              component={RenderRadioButtonWrapper}
            />

您只能在“裸体”HTML中选择一个。但是,在使用API创建单选按钮时,您需要显式设置name:,并为两个单选按钮设置相同的名称,例如name:'viamethod‘,否则您将获得随机名称,并且这两个单选按钮将不在同一组中。

票数 0
EN

Stack Overflow用户

发布于 2021-06-07 21:49:03

首先,radioValue的状态为"“。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<RadioGroup row className={classes.FormGroup}>
  <FormControlLabel
    classes={{ label: classes.label }}
    control={
      <Radio
        name="Yes"
        checked={this.state.radioValue[key]}
        onClick={(e) => {this.handleRowClick(e, row, index)}}
        value="Y"
      />
    }
    label="Yes"
    labelPlacement="end"
  />
  <FormControlLabel
    classes={{ label: classes.label }}
    control={
      <Radio
        name="No"
        checked={this.state.radioValue[key]}
        onClick={(e) => {this.handleRowClick(e, row)}}
        color="secondary"
        value="N"
      />
    }
    label="No"
    labelPlacement="end"
  />
</RadioGroup>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63997607

复制
相关文章
单选按钮的取消与选中 原
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/04/04
3.6K0
单选框设置默认选中
属性含义: type=“radio” → type属性为radio是单选 name=“type” → 单选必须设置name属性相同 type → 设置的名称 value=“教师” → 属性值=教师
是阿超
2021/10/15
5K0
iCheck实现radio单选框点击选中/取消选中
iCheck插件,我就不详细介绍了,大家可以看官方的文档:http://www.bootcss.com/p/icheck/
德顺
2019/11/13
4.8K0
单选框点击文字也能选中
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139403.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
1.6K0
单选按钮的用户体验设计
单选按钮是表单系统的一个基本元素。它们被使用在当存在互斥的两个或多个选项列表而用户必须选择其中一个时。换句话说,点选某个尚未选中的单选按钮,之前的选择就会恢复成未选中。 正确的使用单选按钮会非常好—
前朝楚水
2018/04/03
6.3K0
单选按钮的用户体验设计
AngularDart Material Design 单选按钮 顶
具有材料风格的单选按钮。 通常与material-radio-group一起使用。 选中后,无法通过用户操作取消选中相同的单选按钮。
南郭先生
2018/09/30
3.4K0
动态图表13|单选按钮
今天要跟大家分享的是动态图表13——单选按钮! 本例要讲的单元按钮与复选框的作用类似,只是选择的规则不一样。复选框可以同时选中一个以上,而单元格框则只能一次选中一个,所以在效果上,它与之前我们讲过的数
数据小磨坊
2018/04/10
1.8K0
动态图表13|单选按钮
Axure RP9 菜单选中变色
要实现的效果 屏幕快照 2019-06-13 16.17.44.png 首先拖入6个矩形,为每个矩形设置【选中】式样 屏幕快照 2019-06-13 16.19.03.png 为每个矩形设置【鼠标单击时】事件,设置动作为【选中】"当前元件" 屏幕快照 2019-06-13 16.19.55.png
赵哥窟
2019/06/15
4K0
python开发_tkinter_单选按钮
E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten
Hongten
2018/09/13
1.5K0
python开发_tkinter_单选按钮
前端Vue监听路由变化, 点击页面内按钮跳转菜单更改导航菜单选中状态
2、:key 阻止复用 vue 为你提供了一种方式来声明“这两个元素是完全独立的——不要复用它们”。只需添加一个具有唯一值的 key 属性即可(Vue文档原话) 使用computed属性和Date()可以保证每一次的key都是不同的,这样就可以如愿刷新数据了。
江一铭
2022/06/17
5.9K0
前端Vue监听路由变化, 点击页面内按钮跳转菜单更改导航菜单选中状态
Java GUI编程11—单选按钮:JRadioButton
单选按钮就是在给定的多个选择项中选择一个,并且只能选择一个。在Swing中可以使用JRadioButton完成一组单选按钮的操作,JRadioButton的常用方法如下表。
全栈程序员站长
2022/09/02
4.7K0
Java GUI编程11—单选按钮:JRadioButton
jquery导航选中按钮颜色变化
今天写一个前端页面的小功能,选中某个按钮或者菜单的时候颜色发生变化,以便用户区分自己选中的选项,这也是一种前端日常工作之中优化项。 效果是这样的:
王小婷
2019/07/04
3.8K0
Flat风格的Qml单选/复选按钮
使用Qml的RadioButton与CheckBox控件修改而成。 单选按钮 RadioButton代码 import QtQuick 2.0 import QtQuick.Controls 2.0
Qt君
2019/11/24
2.4K0
Flutter中的单选按钮组件Radio
Flutter 中的单选按钮组件有两种。 1. Radio 单选按钮,一般用来表现一些简单的信息。 常用属性如下: (1). value 单选的值; (2). onChanged 选择改变触发的事件; (3). activeColor 选中时的颜色; (4). groupValue 多个按钮选择组的值; 2. RadioListTile 包含更多信息的单选项,提供多种配置信息的属性,可以表现更丰富的信息。 常用的属性如下: (1). value 单选的值; (2). onChanged 选择改变触发的
越陌度阡
2021/01/05
9.7K0
Flutter中的单选按钮组件Radio
JavaSwing:JRadioButton-单选按钮开发详解
与ButtonGroup对象一起使用以创建一组按钮,其中一次只能选择一个按钮。 (创建一个ButtonGroup对象,并使用其add方法在该组中包括JRadioButton对象。)
JavaEdge
2020/05/27
2.3K0
iOS 单选按钮组--只能而且必选一个按钮
2、初始化并默认一个选项,这里用了4个button,实际可以采用2个,因为写一半才发现后面的汉字也要设置成可点的,就懒得改了,直接改成button了
Python疯子
2018/09/06
4.5K0
iOS 单选按钮组--只能而且必选一个按钮
JavaSwing_2.3: JRadioButton(单选按钮)「建议收藏」
本文链接: http://blog.csdn.net/xietansheng/article/details/74363379
全栈程序员站长
2022/09/02
5510
JavaSwing_2.3: JRadioButton(单选按钮)「建议收藏」
Android开发学习笔记(十七)单选按钮RadioButton
为使单选按钮产生互斥效果,需要把所有RadioButton放置在一个统一的RadioGroup中。
zstar
2022/06/14
9150
Android开发学习笔记(十七)单选按钮RadioButton
点击加载更多

相似问题

所有单选按钮组均已单击或未单击

10

选中单选按钮3时,选中单选按钮1

19

选中多个单选按钮,取消选中单选按钮组

326

jquery 2组单选框,均已选中,但选项不同

10

选中单选按钮

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文