当用户从 React 的下拉列表中选择一个选项时如何启用另一个输入字段

Cas*_*dra 1 javascript reactjs react-hooks

如果用户从下拉列表中选择其他选项,我正在尝试启用另一个输入字段,并且我尝试向输入字段添加一个状态,该状态根据从下拉列表中选择的值设置为真/假,但我不是当我选择其他时能够查看输入选项。

const [designation, setDesignation] = useState("");
const [showOption, setShowOption] = useState(false);

<div className="field">
  <label className="label">Designation</label>
  <div className="control ">
    <select
      className="input"
      id="designation"
      name="Your Designation"
      value={designation}
      type="text"
      onChange={(e) => {
        setDesignation(e.target.value);
        if (value == "3") setShowOption(true);
        else setShowOption(false);
      }}
      placeholder="Your Designation"
      required
    >
      <option value="1">Product Manager</option>
      <option value="2">Developer</option>
      <option value="3">Other</option>
    </select>
  </div>
</div>;
{
  showOption ? (
    <div className="field">
      <label className="label">Designation</label>
      <div className="control ">
        <input
          className="input"
          id="designation"
          value={designation}
          type="text"
          onChange={(e) => setDesignation(e.target.value)}
          placeholder="Your Designation"
          required
        />
      </div>
    </div>
  ) : (
    ""
  );
}
Run Code Online (Sandbox Code Playgroud)

Car*_*oso 7

你必须onchange像这样改变功能。

onChange={(e) => {
  setDesignation(e.target.value);
  if (e.target.value == "3") setShowOption(true);
  else setShowOption(false);
}}
Run Code Online (Sandbox Code Playgroud)

以及 HTML 部分的一些细微变化。

{
  showOption && <div className="field">
    <label className="label">Designation</label>
    <div className="control ">
      <input
        className="input"
        id="designation"
        value={designation}
        type="text"
        onChange={(e) => setDesignation(e.target.value)}
        placeholder="Your Designation"
        required
      />
    </div>
  </div>
}
Run Code Online (Sandbox Code Playgroud)

它对我有用。请尝试一下,让我知道它是否有效。