javascript - 更新期间控制复选框的最佳方法 | 反应JS
问题描述
假设我有一个表格要发布。它有复选框。(布尔类型,接收 0 和 1 )。创建逻辑如下。
"is_has_n": values.is_has_n === true ? 1 : 0,
如果为真 (1) 和假 (0),则返回值 1 和 0。在我创建这篇文章时,它可以正常工作。如果我想编辑这篇文章,我会遇到一些问题。所以这个复选框以前是真的,现在对我来说应该是假的。所以我可以在编辑帖子时取消选中该复选框。我有以下表格:
{
data.is_has_n === 1 ?
(
<Form.Check
onChange={handleChange}
name="is_has_n"
defaultChecked={true}
isInvalid={touched.is_has_n&& !!errors.is_has_n}
type="checkbox"
label="Label
/>
) :
(
<Form.Check
onChange={handleChange}
name="is_has_n"
defaultChecked={false}
isInvalid={touched.is_has_n&& !!errors.is_has_n}
type="checkbox"
label="Label
/>
)
如果我想将 true 复选框设置为 false,那就是我现在的情况。所以我想在更新 psot 期间保持它处于未选中状态。我是说。在提交数据之前,我可以做些什么来检查我的控制方式是选中还是取消选中?还应该考虑有几个错误按下的复选框。我也想过做一个名为 isChecked 的方法,但我认为这不是一个解决方案。因为在保存之前可能会多次按下复选框。
已编辑 | 固定 我找到了解决方案:我确实喜欢这样:
const [IsDangerous, setIsDangerous] = useState(data.dangerous_status === 1 ? true : false);
还有我的手柄更换功能
if (name === "dangerous_status") {
console.log(isChecked);
setFieldValue(name, isChecked);
if (isChecked) {
console.log("dangerous_status", true);
setIsDangerous(true);
} else {
setIsDangerous(false);
console.log("dangerous_status", false);
}
}
解决方案
这个问题似乎还不清楚,但我认为你应该使用受控组件,从而用状态控制输入字段值。请参阅https://reactjs.org/docs/forms.html。
<input type="checkbox" value={this.state.inputValue} onChange={this.handleChange} />
“value”将输入绑定到由 handleChange 更改的状态字段 inputValue。控制 inputValue 的值以控制在输入字段中显示的内容。
推荐阅读
- javascript - 如何在Angular 6中使用反应式表单隐藏字段后提交表单?
- .net - 在 Winform 应用程序中使用 Matlab 生成的 .Net 程序集
- php - jQuery 中的 bloginfo('template_directory') 用于管理面板
- ecmascript-6 - 使用 Node Rollup 如何生成 ES2015 输出
- html - 引导工具提示
- jquery - 如何防止 JQuery 中的第二次点击?
- sql - 我可以在外键列中添加非原子值吗?
- javascript - 将所有访问者浏览器信息保存到会话中不起作用
- python - NameError: __file__ 未定义
- cakephp-3.0 - 如果满足条件,如何初始化数据库中的表对象?蛋糕PHP