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)
你必须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)
它对我有用。请尝试一下,让我知道它是否有效。