javascript - 如何在 React Hooks 中切换复选框值?

标签 javascript reactjs checkbox react-hooks

我有一个输入类型 checkbox如下:

const [is_checked,set_is_checked]= useState(false);

const toggle_payment = () => {
    set_is_checked(!is_checked);
    console.log(is_checked);
}


return(
    <div>
        <input checked={is_checked}  onChange={toggle_value} type="checkbox"/>
    </div>
)

问题

这似乎工作正常,但是当我 console.log(is_checked)看起来它打印了以前的值。我都试过了onChangeonClick但得到了相同的结果。让我困惑的是 checkbox每次单击该框时都会被选中/取消选中,但 console.log打印的值与预期打印的值不同,例如当我单击鼠标选中该框时,该框已被选中,但 console.log打印 false

最佳答案

使用 useState hook 提供的 updater 进行状态更新是异步的,不会立即反射(reflect)和更新,而是会触发重新渲染

我认为如果你在函数之外使用 console.log() 你可能会看到 is_checked 的变化

关于javascript - 如何在 React Hooks 中切换复选框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61433956/

相关文章:

javascript - 没有为 ExtJs 表单值设置默认值

reactjs - 错误: Attempted to assign to read only property on using Animated react native

javascript - 从外部 Controller 设置 Angular 复选框重复

jquery - 页面重新加载后移动复选框列表中的复选标记 - 仅限 Firefox

javascript - 在 Windows 10 机器上安装 Node 模块的问题

javascript - 无法打印到控制台

javascript - 隐藏状态不属于可过滤数组的所有元素?

javascript - 如何从服务器正确提供 create-react-app 索引?

reactjs - React.Components 中的 console.log 和调试器语句 - 意外 token

android - 如何在Android Kotlin的RecyclerView中为CheckBox添加isChecked和unChecked事件