reactjs React:如何显示/隐藏Radiobutton选择的控件?

z2acfund  于 2023-05-06  发布在  React
关注(0)|答案(1)|浏览(179)

在React中,在页面加载时,我显示了四个单选按钮。在Radiobutton移动的上,点击后,会显示电话号码下拉列表,并隐藏电子邮件文本框。在单选按钮电子邮件,当点击它将显示电子邮件文本框,并隐藏电话号码下拉列表。下拉菜单和文本框仅在单击单选按钮时显示。请找到我的代码,这是如何实现的?

import React, { useState } from 'react'

const App = () => {
  const [selected, setSelected] = useState('')

  return (
    <div className="App">
      <form Id="custReviewForm">
        <input type="radio" id="html" name="options" value={selected}
onChange={setSelected}/>
        mobile:
        <br />
        <select name="phoneno" id="phonenumber">
          <option>111-111-1111</option>
          <option>222-222-2222</option>
          <option>333-333-3333</option>
          <option>444-444-4444</option>
        </select>
        <br /><br />
        <input type="radio" id="html" name="options" value="optEmail" />
        Email:<br />
        <input type="textbox" id="txtEmail"  value="Email"/>
        <br /><input type="radio" id="html" name="options" value="optcode" />
        code
        <br /><input type="radio" id="html" name="options" value="optAddress" />
        address
        <br /><input type="submit" value="Submit" />
      </form>
    </div>
  );
}

export default App;
qij5mzcb

qij5mzcb1#

您需要使用收音机输入的checked prop 。您可以定义一个可能选项的数组,然后遍历它并将每个选项Map到具有valuechecked的单选选项。

options.map((option) => (
    <input
        type='radio'
        name='options'
        value={option}
        checked={option === selected}
        onChange={(event) => setSelected(event.target.value)}
    />
))

然后显示其他输入由selected状态。例如:

{selected === 'email' ? <input type='email' /> : null}

另外,从元素中删除所有id。任何两个元素都不应该有相同的id。

相关问题