Radio 单选框组件
用户可以通过单选按钮从一组中选择一个选项。
当用户想要看到所有的选项时,可以使用单选按钮。 如果可用选项可以折叠,请您考虑使用占用空间更少的下拉菜单。
默认情况下,单选按钮应该选择了最常用的选项。
要横向布置按钮,请将 row 属性设置为:<RadioGroup row />。
Standalone radio buttons 独立的单选框按钮
Radio 也可以单独使用,无需额外的 RadioGroup wrapper。
Customized radios 自定义单选框
以下是自定义组件的一个示例。 您可以在重写文档页中了解有关此内容的更多信息。
<FormControl component="fieldset">
  <FormLabel component="legend">Gender</FormLabel>
  <RadioGroup defaultValue="female" aria-label="gender" name="customized-radios">
    <FormControlLabel value="female" control={<StyledRadio />} label="Female" />
    <FormControlLabel value="male" control={<StyledRadio />} label="Male" />
    <FormControlLabel value="other" control={<StyledRadio />} label="Other" />
    <FormControlLabel
      value="disabled"
      disabled
      control={<StyledRadio />}
      label="(Disabled option)"
    />
  </RadioGroup>
</FormControl>useRadioGroup
对于需要高级定制用例的情况,您可以使用一个 useRadioGroup() hook。 这将会返回单选框组上下文的值。 单选框组件在其内部会使用这个 hook。
API
import { useRadioGroup } from '@material-ui/core/RadioGroup';返回结果
value (Object):
- value.name(String [optional]):用于引用控件值的名称。
- value.onChange(Void [optional]):当单选框被选中时会触发的回调。
- value.value(Any [optional]):所被选定的单选框的值。
示例
<RadioGroup name="use-radio-group" defaultValue="first">
  <MyFormControlLabel value="first" label="First" control={<Radio />} />
  <MyFormControlLabel value="second" label="Second" control={<Radio />} />
</RadioGroup>什么时候使用
无障碍设计
(WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#radiobutton)
- 所有表单控件都应该带有标签,而这包括了单选按钮,复选框和开关。 在大多数情况下,这是通过使用一个 <label>元素(FormControlLabel)实现的。
- 如果无法使用标签,您则必须在输入组件中直接添加属性。 在这种情况下,您可以经由 inputProps属性,来附着一些额外的属性(例如arial-label,aria-labelledby,title)。
<RadioButton
  value="radioA"
  inputProps={{
    'aria-label': 'Radio A',
  }}
/>