【问题标题】:Radio ref on react无线电参考反应
【发布时间】:2020-10-18 19:53:21
【问题描述】:

我有无线电输入使用想使用 ref 在控制台上显示结果。

即使我选择了第一个值,我也总是得到第二个值。 这是构造函数

this.inputKelamin = React.createRef();

并像这样渲染

<div>
        Jenis Kelamin :
        <input name="kelamin" type="radio" value="laki - laki" ref={this.inputKelamin}/>
        Laki - laki
        <input name="kelamin" type="radio" value="perempuan" ref={this.inputKelamin}/>
        Perempuan
      </div>

onSubmit,我通过控制台这样说:

alamat : ${this.inputAlamat.current.value}

结果总是“perempuan” 不做制作,仅供学习,谢谢

【问题讨论】:

  • 为什么要创建inputKelamin ref,分配给2个输入,然后得到inputAlamat的值?

标签: reactjs radio ref


【解决方案1】:

您对两个元素使用相同的ref,第二个ref={this.inputKelamin} 覆盖第一个,它始终指向第二个单选按钮。

来自official docs

Refs 提供了一种访问 DOM 节点或在 render 方法中创建的 React 元素的方法。

您应该为两个输入创建 2 个不同的参考。

你在这里检查了错误的属性

this.inputAlamat.current.value

value 永远是你给value="perempuan" 的属性值。

如果是收音机,您应该查看checked 属性,它会告诉您它是否被选中

this.inputKelamin.current.checked

另外,您可能想查看controlledun-conntrolled 组件

【讨论】:

  • 哦,好的,谢谢你的回答,这就是我的意思。
  • @Siddharth 您的解决方案有效,但为什么当我执行 console.log(this.inputKelamin.current) 时“已检查”属性不可用。我认为这种缺乏显式属性是混乱的一部分
猜你喜欢
  • 2019-04-26
  • 1970-01-01
  • 2020-09-11
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2023-04-04
  • 2019-04-24
相关资源
最近更新 更多