javascript - React OnChange 每次都重新加载 DOM
问题描述
我有一个带有 Form 的功能性 React 组件。表单有多个文本输入
<Form onSubmit={submitHandler}>
<div className="mb-3">
<label className="form-label">Role</label>
<input type="text" onChange={(e)=>setRole(e.target.value)} className="form-control" id="role" />
</div>
<div className="mb-3">
<label className="form-label">Facebook Handle</label>
<input type="url" onChange={(e)=>setFacebookHandle(e.target.value)} className="form-control" id="FBHandle" />
</div>
<button type="submit" className="btn btn-primary">Submit</button>
</Form>
我正在使用 React useState 钩子并处理 onChange 事件。下面是相同的代码
const [role,setRole] = useState('')
const [facebookHandle,setFacebookHandle] = useState('')
每当我在文本字段中输入值时,DOM 似乎正在重新加载并将页面滚动到顶部(我上面的输入字段和标签很少)。每次我输入一些值时页面都会向上滚动,这会产生问题。我尝试使用 preventDefault() 函数。这也无济于事!我究竟做错了什么?
解决方案
问题解决了:
问题是由于我的导航栏在嵌套组件中的双重包含。在某处,我将窗口滚动-Y 设置为 0,然后每次都会启动。
推荐阅读
- ruby-on-rails - 如何一键更新Item?
- python - 如何获得numpy数组的原始组合?
- python - 请求获取保留响应 401
- docker - 将控制组规则应用于 Kubernetes 集群中的特定(或所有)Docker 容器
- python - 为什么在 Pycharm 中连接混合类型列表时会收到警告?
- javascript - 如何按顺序循环运行这些异步函数?
- react-native - React Native onLayout 与 React Hooks
- css - 剪辑路径 url 找不到 id
- java - 用于在映射 Informatica PowerCenter 中写入缺失值的 Java 代码
- json - 字典 JSON 的 SWIFT JSON解码器类型不匹配错误