【发布时间】:2021-12-28 07:47:07
【问题描述】:
我正在尝试使用 Reactstrap 重现 Youtuber Traversy Media 的 React JS crash course 2021 Task Tracker 项目,并使用相同的方法(组件级挂钩)创建一个带有复选框的表单,我设置了一个方法,确保提交表单后,文本区域将设置为空,复选框设置为 false,因此未选中。当我点击提交时,复选框已设置为 false,但仍处于选中状态。 从 React 开发工具中,该值被重置为 false 并且复选框应该被取消选中,我不知道出了什么问题,我做了和视频一样的事情。我在这里粘贴代码时遇到问题,因此省略了不相关的部分,例如输入文本代码。提前致谢!
const [reminder, setReminder] = useState(false);
const onSubmit = (e) => {
e.preventDefault()
if (!text) {
alert('Please add a task')
return
}
onAdd({ text, day, reminder })
setText('')
setDay('')
setReminder(false)}
{/* checkbox here */}
<div className="mb-3 form-check">
<input
type="checkbox"
id="checkbox1"
className="form-check-input"
value={reminder}
onChange={(e) => setReminder(e.currentTarget.checked)}
/>
<label className="form-check-label" htmlFor="checkbox1">
Set reminder
</label>
</div>
{/* submit button */}
<div className="d-grid">
<button type="submit" className="btn btn-primary">
Submit
</button>
</div>
【问题讨论】:
-
您的代码没有反映上述结果,因为输入没有属性
checked。问题一定出在其他地方。 -
@Thanh Trung 但是视频也没有使用属性检查,如果不使用 reactstrap 进行样式设置,值也有效,我不确定这是否是引导程序
标签: javascript reactjs reactstrap