javascript - 添加/删除类会导致输入内容消失
问题描述
我有以下代码:
<div
className={classNames(styles["login"], {
[styles["login-top"]]: moveControlsTo === MOVE_CONTROLS_TO.TOP,
[styles["login-fixed"]]: !(moveControlsTo === MOVE_CONTROLS_TO.TOP),
})}
>
<input
type="text"
id="freesearch-input"
className={classNames(styles["freesearch-input"], styles["borders"])}
autoComplete={"off"}
onChange={handleOnChange}
value={""}
/>
</div>
一个带有输入的简单 div。问题是当这个 div 的类名从 login-top 更改为 login-fixed 或反之亦然时,输入值消失,我不希望这种行为。有解决方案吗?
解决方案
内容会消失,因为每当状态更改时,您的组件就会重新渲染。您将输入字段的值设置为value={""}
。因此它每次都加载空。只需为此输入元素创建一个状态并在更改时将其更改为。
const [inputVal, setInputVal] = useState("");
<input onChange={(evt)=>setInputVal(evt.target.val)} value={inputVal}>
现在,每当状态发生变化时,您的输入将始终显示inputVal
价值。
推荐阅读
- docker - 如何将应用程序打包到能够在 Kubernetes 中的 Spark 集群上运行的 docker 镜像中?
- python - 如何在 tkinter 中创建一个全局变量?
- java - 如何在 Java 中处理陈旧的池连接
- apache - 通过 Apache 将特定用户代理限制为 Internet Explorer?
- javascript - 最初填充的道具值,然后不在反应js中
- node.js - 部署MEAN堆栈,Mongo没有输出结果
- php - 如何在 Web 开发的客户端安全地存储/获取用户信息?
- powerbi - 如何在 Power BI 中计算 MAX 测量值?
- css - 单选按钮背景并选中
- flutter - Flutter:如何将麦克风的原始音频信号实时存入内存?