当前位置: 首页 > 知识库问答 >
问题:

材质UI文本字段“禁用”属性不会更新多次

华安民
2023-03-14

尝试制作一个有无线电开关的程序,每个开关相当于一个不同的布尔值。根据布尔值,它会使文本字段上的“禁用”属性为true或false。我的代码允许将按钮默认选择为启用编辑,当我选择禁用时,它将禁用文本字段。但是,如果我单击“禁用”,然后再次尝试单击“启用”,则不会将文本字段从“禁用”更改为“启用”。

  const [radioEdit, setRadioEdit] = React.useState(false);

        <RadioGroup
          value={radioEdit}
          onChange={(e) => setRadioEdit(e.target.value)}
          aria-labelledby="demo-radio-buttons-group-label"
          name="radio-buttons-group"
          row
        >
          <FormControlLabel
            value={true}
            control={<Radio />}
            label="Disabled"
          />
          <FormControlLabel
            value={false}
            control={<Radio />}
            label="Enabled"
          />

            <p>{String(radioEdit)}</p>

            <TextField
              id="outlined-basic"
              variant="outlined"
              size="small"
              ////////RIGHT HERE////////
              value={data["companyname"]}
              disabled={radioEdit}
            />

如果无线电编辑的默认状态不是“false”,它会自动禁用(设置为true或null),并且不会让我多次更新它。

共有1个答案

文华美
2023-03-14

问题在于您使用RadioGroup定义的onChange。通常,我们定义onChange={(e)=

onChange={() => setRadioEdit(!radioEdit)}

我在这里切换我的状态onChange。因此,当我们将radioEdit设置为true时,实际上 true 。这就是useState钩子的工作原理。因此,通过定义setRadioEdit(!radioEdit),我们可以切换状态。如果为true,则变为

此外,您必须关闭< code >

const [radioEdit, setRadioEdit] = useState(false);  

return (
    <>
  
  <RadioGroup
    value={radioEdit}
    onChange={(e) => setRadioEdit(!radioEdit)}
    aria-labelledby="demo-radio-buttons-group-label"
    name="radio-buttons-group"
    row
  >
    <FormControlLabel value={true} control={<Radio />} label="Disabled" />
    <FormControlLabel value={false} control={<Radio />} label="Enabled" />
  </RadioGroup>

  <p>{String(radioEdit)}</p>

  <TextField
    id="outlined-basic"
    variant="outlined"
    size="small"
    disabled={radioEdit}
  />
</> 

 );

 类似资料:
  • 我想显示现在说唱文字,比如...我怎么能改变它通过使用材料UI 它像那样显示“身体1”。Lorem ipsum dolor坐在这里,奉献给我们。克罗斯·布兰迪特..." 但我想表现得像“身体1.洛雷姆·伊普苏姆·多洛·希特·阿梅特,奉献给精英们。库斯·布兰迪。。。더보기" 你能帮我吗?

  • 我一直在试图找出如何样式的材料ui TextField组件。 我的类创建如下: 我的问题是,我似乎无法让文本字段的颜色变成白色。我似乎能够将样式应用于整个文本字段(因为宽度样式工作等)...但是我认为问题是我没有将样式应用到链的更下游和实际输入中。 我曾试图寻找其他关于传递输入道具的答案,但没有成功。 我已经尽了我最大的努力,但我想我需要问问是否有人知道我做错了什么。 它现在看起来是什么样子

  • 问题内容: 我在使用iOS SDK 8的Swift时遇到一个问题 我使用了回调来获取数据背景,并且在获取数据时,我想设置一个文本字段值并更新屏幕。 这是我的代码: 运行此代码,将正确获取数据并且txtTest没有更新,但是当我点击txtTest时,将显示该值。那么有什么方法可以强制更新UI?或向UI线程发送消息? 问题答案: 每个人都想在Swift中进行UI更新时遇到的同一问题:永远不要在任何辅助

  • 从 1.2 版本开始, UI 的 Sprite 组件支持自定义材质的使用,其使用界面如下图: 其使用方法与其他材质并无不同,但由于 Sprite 面板有基于 UI 内置材质的功能,所以有一些需要注意的点: 当设置自定义材质数量为 0 或为空时,会使用默认材质进行渲染,面板功能及使用方法可参考 Sprite UI 并不支持多材质,自定义材质的数量最多为一个 当使用了 ui 自定义材质之后,面板上的

  • 我试图在Material UI的TextField上使用React的“ref”属性访问输入数据。通过“inputRef”或“inputProps”似乎没有一种简单的方法可以做到这一点。 下面的示例显示了第26行的inputProps的使用。将TextField的名称指定给“ref”属性似乎不会生成有效的对象。 对于“inputRef”,根据Material ui文档,它强制使用函数,尝试将字段数据

  • 如何在单击按钮后聚焦文本字段。我尝试使用自动对焦,但没有成功:示例沙盒