首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react中设置单选按钮的默认值?

如何在react中设置单选按钮的默认值?
EN

Stack Overflow用户
提问于 2020-03-11 17:26:20
回答 2查看 1.5K关注 0票数 0

我有一个输入表单,我得到了属性,并将它们映射到输入组件,但是对于单选按钮,我不能在加载时设置默认值。有什么解决方案吗?

updateForm.jsx现在,如何根据员工角色管理员或代表选择默认单选按钮?

updateForm.jsx

代码语言:javascript
复制
const updateForm = props => {
const { sortedEmployees } = props.location.state;

 const [updateFormData, handleUpdateForm] = useState({
    emp_name: sortedEmployees.emp_name,
    emp_phone: sortedEmployees.emp_phone,
    emp_role: sortedEmployees.emp_role
  });
  const { emp_name, emp_phone, emp_role } = updateFormData;

  const handleEmployeeForm = e => {
    handleUpdateForm({ ...updateFormData, [e.target.name]: e.target.value });
  };

     <form className="w-full" onSubmit={e => handleUpdateEmployee(e)}>
        <label className="label ml-2" htmlFor="Name">
          Name
        </label>
        <input
          className="input ml-2 mb-2"
          type="text"
          name="emp_name"
          value={emp_name}
          id="Name"
          required
          placeholder="Name"
          onChange={e => handleEmployeeForm(e)}
        />
        <label className="label ml-2" htmlFor="Phone">
          Phone Number
        </label>
        <input
          className="input ml-2 mb-2"
          type="text"
          pattern="[0-9]*"
          name="emp_phone"
          value={emp_phone}
          id="Phone"
          required
          placeholder="Phone number"
          onChange={e => handleEmployeeForm(e)}
        />
        <span className="ml-2 mr-4 font-semibold">Role</span>
        <label htmlFor="admin">Admin</label>
        <input
          className="ml-2 mr-2"
          type="radio"
          name="emp_role"
          value="admin"
          id="admin"
          onChange={e => handleEmployeeForm(e)}
        />
        <label htmlFor="representative">Representative</label>
        <input
          className="ml-2 mr-2"
          type="radio"
          name="emp_role"
          value="representative"
          id="representative"
          onChange={e => handleEmployeeForm(e)}
        />
        <button type="submit" value="submit" className="button is-primary ml-2">
          Update
        </button>
      </form>
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-11 17:41:15

你应该在你的无线按钮上使用checked

代码语言:javascript
复制
<label htmlFor="admin">Admin</label>
<input
  className="ml-2 mr-2"
  type="radio"
  name="emp_role"
  checked={emp_role === 'admin'}
  value="admin"
  id="admin"
  onChange={e => handleEmployeeForm(e)}
/>
<label htmlFor="representative">Representative</label>
<input
  className="ml-2 mr-2"
  type="radio"
  name="emp_role"
  value="representative"
  checked={emp_role === 'representative'}
  id="representative"
  onChange={e => handleEmployeeForm(e)}
/>
票数 1
EN

Stack Overflow用户

发布于 2020-03-11 17:41:09

您可以使用state并为其设置默认值,然后在您的无线输入中使用。

代码语言:javascript
复制
function Example() {
  const [gender, setGender] = useState('male');
  return (
    <div>
      <input
        checked={gender === "male"}
        type="radio"
        id="male"
        name="gender"
        value="male"
        onChange={e => setGender(e.currentTarget.value)}
      />
      <label htmlFor="male">Male</label>
      <br />
      <input
        checked={gender === "female"}
        type="radio"
        id="female"
        name="gender"
        value="female"
        onChange={e => setGender(e.currentTarget.value)}
      />
      <label htmlFor="female">Female</label>
      <br />
    </div>
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60632791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档