Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中所有未按预期运行的复选框_Javascript_Reactjs_Ecmascript 6_Formik - Fatal编程技术网

Javascript 选中所有未按预期运行的复选框

Javascript 选中所有未按预期运行的复选框,javascript,reactjs,ecmascript-6,formik,Javascript,Reactjs,Ecmascript 6,Formik,我正在尝试为我的主要Formik React表单编写这个自定义React组件 我想创建一个“全选”复选框,当选中或取消选中时,该复选框将选中或取消选中所有其他复选框 我意识到我正在使用onChange事件单击“全选”复选框 但当我这样做时,它总是处于选中状态 我也不知道如何自动选择和取消选择其他复选框 另一件事是,这个组件不使用状态,因为状态是由Formik在我的表单页面中处理的。Formik只是查找选中的复选框并将其添加到状态 有办法做到这一点吗 谢谢 这是我的密码: const Engine

我正在尝试为我的主要Formik React表单编写这个自定义React组件

我想创建一个“全选”复选框,当选中或取消选中时,该复选框将选中或取消选中所有其他复选框

我意识到我正在使用onChange事件单击“全选”复选框

但当我这样做时,它总是处于选中状态

我也不知道如何自动选择和取消选择其他复选框

另一件事是,这个组件不使用状态,因为状态是由Formik在我的表单页面中处理的。Formik只是查找选中的复选框并将其添加到状态

有办法做到这一点吗

谢谢

这是我的密码:

const EngineList = () => {

    const handleEngineChange = (e) => {
        console.log('set engines to All -- ', e);
    } 

    return (
        <>

            <label>
                <Field type="checkbox" name="engines" onChange={handleEngineChange} value="1" selected />
                Select All
            </label>
            <label>
                <Field type="checkbox" name="engines" value="2" />
                Formula One
            </label>
            <label>
                <Field type="checkbox" name="engines" value="3" />
                Nascar
            </label>
        </>
    );  
}

export default EngineList;
const EngineList=()=>{
常量handleEngineChange=(e)=>{
log('将引擎设置为所有--',e);
} 
返回(
全选
一级方程式
纳斯卡
);  
}
导出默认引擎列表;

由于Formik处理状态,因此必须使用API来更改状态。有,你可以用。

哦,好的,你的意思是我应该用“setfielfvalue”而不是onChange?谢谢:)您仍然可以使用
onChange
并在
handleEngineChange