Флажок "Выбрать все" работает не так, как ожидалось - PullRequest
1 голос
/ 05 мая 2020
• 1000 .

Я понял, что устанавливаю флажок «Выбрать все» с помощью события 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;

1 Ответ

1 голос
/ 05 мая 2020

Поскольку Formik обрабатывает состояние, вы должны использовать API для изменения состояния. Есть setFieldValue , который вы можете использовать.

...