2016-11-06 5 views
0

Я хочу проверить/снять отметку со всех флажков в тот момент, когда я выбираю Check All, но не могу заставить его работать. Я использую компоненты material-ui и редукционную форму. мой план состоит в том, чтобы захватить значение поля checkAll с помощью formValueSelector API и установить на нем флажки A и B. Также попытался использовать значение prop, но не повезло.Выбрать все checkbox redux form

import React from 'react'; 
import { connect } from 'react-redux'; 
import { Field, reduxForm, formValueSelector } from 'redux-form'; 
import { Checkbox } from 'redux-form-material-ui'; 

let Form = (props) => { 

return (
    <form> 

     <Field name="checkAll" id="checkAll" label="Check All" component={ Checkbox } /> 

     <Field name="a" label="A" component={ Checkbox } checked={ props.checkAll } /> 

     <Field name="b" label="B" component={ Checkbox } checked={ props.checkAll } /> 

    </form> 
); 
}; 

Form = reduxForm({ 
    form: 'Form' 
})(AddReturnModal); 

// Decorate with connect to read form values 
const selector = formValueSelector('Form'); // <-- same as form name 
Form = connect(
(state) => { 
    const checkAll = selector(state, 'checkAll'); 

    return { 
     checkAll 
    }; 
    } 
)(Form); 

export default Form; 

ответ

0

Вы можете использовать метод change. From docs:

изменения (поле: Строка, значение: любой): Функция

Изменение значения поля в магазине Redux. Это создатель связанного действия, поэтому он ничего не возвращает.

Единственное решение, которое я вижу, - это перебрать список флажков и вызвать на них change(checkboxName, value).