javascript - React-Bootstrap表单切换按钮

标签 javascript reactjs bootstrap-4 next.js react-bootstrap

我似乎无法弄清楚为什么我无法将react-bootstrap开关的默认值设置为false(关闭)。似乎该值唯一会更改的时间是我触发 onChange 事件处理程序时。我错过了什么吗?这是我表单中的开关部分:

<Form.Group as={Row} className="mb-3">
  <Col sm={10}>
    <Form.Check
      type="switch"
      id="custom-switch"
      label="Enable GTC"
      defaultChecked="false"
      onChange={(e) => setField('gtc', e.target.checked)}
    />
  </Col>
</Form.Group>

这是我处理表单状态的方式。

  const setField = (field, value) => {
    setForm({
      ...form,
      [field]: value,
    });
  };

我认为 `defaultChecked="false"可以解决问题,但事实并非如此。

谢谢!

最佳答案

第一

const [switchState, setSwitchState] = useState(false);

然后分配:

defaultChecked={switchState}

现在编写更改处理函数

const handleChange=(e)=>{
   setField('gtc', e.target.checked)
   setSwitchState(!switchState)
    
}

最终代码:

<Form.Group as={Row} className="mb-3">
  <Col sm={10}>
    <Form.Check
      type="switch"
      id="custom-switch"
      label="Enable GTC"
      defaultChecked={switchState}
      onChange={handleChange}
    />
  </Col>
</Form.Group>

关于javascript - React-Bootstrap表单切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70717326/

相关文章:

javascript - jQuery 单击事件在第一次单击时不起作用

javascript - 如何在 webpack 输出的不同入口点共享同一个类的实例

css - css 加载器的模块解析失败错误

javascript - 将 Material UI Link 组件与 Next.JS Link 组件一起使用

html - Bootstrap 按钮上的 Wordwrap 不起作用

javascript - "jQuery requires a window with a document"webpack 2错误

javascript - Angular - 高度和宽度的属性绑定(bind)不适用于图像

reactjs - React - 将 props 传递给已经是 React 元素的变量

html - 如何在 bootstrap 4 中的 flexbox 包装元素之间添加垂直间距?

bootstrap-4 - 更改Bootstrap 4复选框的大小