3 回答
TA贡献1815条经验 获得超13个赞
将您的密码条件更改为以下代码
{(type==='password' || type=== 'input') &&
<div>
<p>This is Password</p>
<span onClick={showHide}>
{type === 'input' ? 'Hide' : 'Show'}
</span>
</div>}
TA贡献1784条经验 获得超7个赞
您处理有关何时显示元素的条件的方式使应用程序崩溃。
此外,您可能需要重新考虑使用它useEffect并允许对组件进行更多控制。您不需要将type和placeholder道具保存到状态,删除它会稍微简化您的代码。
function TextBox({ type, placeholder }) {
const [ value, setValue ] = useState('');
const [ visible, setVisible ] = useState(false);
const handleChange = (e) => setValue(e.target.value);
const showhide = () => setVisible(visible => !visible);
return (
<div>
<h1>{type}:{placeholder}</h1>
<input
value={value}
type={type}
placeholder={placeholder}
onChange={handleChange}
/>
{type === 'password' && (
<div>
<p>This is Password <button onClick={showhide}>Show/Hide</button></p>
{visible && <span>{value}</span>}
</div>
)}
{type==='text' && <p>This is Text</p>}
{type==='email' && <p>This is an Email</p>}
</div>
);
}
添加回答
举报