【发布时间】:2021-06-07 18:53:21
【问题描述】:
我正在开发一个带有按钮来重置表单的 React 应用程序。当用户单击“重置”按钮时,所有状态都会恢复到它们的原始值。但即使在所有其他数据都清除后,复选标记仍处于选中状态。它似乎确实重置了状态,但复选标记仍然可见并且对用户来说是混乱的。我知道在初始加载时会读取 defaultChecked,但即使我完全删除 defaultChecked,复选标记仍然存在,所以我不确定问题出在哪里。我怀疑解决方案可能涉及 onChange,但我无法让它发挥作用。任何帮助表示赞赏。
const [checked, setChecked] = useState(false);
const clearSearch = () => {
setResults([]);
setQuery("");
setFormat("");
setChecked(false);
}
<label>
<input
type="checkbox"
id="searchAll"
defaultChecked={checked}
onChange={() => setChecked(!checked)}
/>
Search all formats
</label>
<button className="btn btn-danger"
onClick={event => {
event.preventDefault();
clearSearch();
}}>
Reset
</button>
GitHub 上的 App.js https://github.com/irene-rojas/loc/blob/master/src/App.js
【问题讨论】:
标签: javascript reactjs forms checkbox