javascript - 即使状态没有改变,反应也会改变受控输入值吗?
问题描述
因此,如果每个 UI 更新必须仅在组件的“状态”或“道具”发生更改时发生,那么为什么受控输入会更改回状态内部的值,当状态未更新且没有任何内容触发更新时循环?
解决方案
在受控组件中,该值等于您作为道具传递给它的值。
如果该值没有改变,那么该受控组件的值也不会改变。
因此,通常在受控组件中,您将作为 onChange 道具传递一个回调函数来更改值。如果该回调函数不更改值,则输入的值不会更改。
例如
const App = () => {
const [value, setValue] = useState("");
return (
<div>
<input value={value} onChange={(e) => {}} />
</div>
);
};
无论我们如何尝试写入此输入,它的值都将始终保持为空字符串“”。由于 on change 方法不会更新值状态。
所以要明确你的问题,状态并没有恢复到初始值,而是它永远不会改变,html元素也是如此 - 输入的值永远不会改变。
代码笔示例: https ://codepen.io/besnikkorca/pen/rNOVXzx
推荐阅读
- php - 夜间评估时的日期比较
- angular - 在 Angular 中为动态加载的组件提供 @input
- html - 如何编写类似棋盘格的 CSS 网格网站?
- php - Wordpress“无法访问站点”错误,无法访问 FTP 或仪表板
- python - json.decoder.JSONDecodeError:期望':'分隔符:第 1 行第 57358 列(字符 57357)
- java - 如何使条目无效并从咖啡因缓存返回其值?
- c++ - 在 C++ 中编译 sio_client 和 semaphore
- java - Sarxos 网络摄像头库
- flutter - I/颤振(10710):输入“列表”
' 不是类型 'Map 的子类型 ' - swift - 调用中的参数缺少参数,绑定值问题