2017-02-01 7 views
3

Я знаю, что флажок получает значение bool, так что я могу сделать, чтобы изменить это с помощью нескольких флажков.redx-form multiple checkbox, значения в одном массиве без значений bool

ниже, где у меня есть мой весь флажок, файл JSX, каждый флажок категории и пользователь может выбрать одну или несколько категорий

<div className='columns is-multiline'> 
    {this.props.propsCategories.data.list.map((category, i) => (
    <div key={ i } className='column is-one-quarter'> 
     <Field 
     name='category[]' 
     label={ category.title } 
     component={ WrapperInputCheckbox } 
     setCategory={(e) => this.handleChange(e, category.id)} 
     /> 
    </div> 
))} 
</div> 

в моем handleChange Я просто пытаюсь изменить одно значение.

//handleChange 
handleChange = (e, id) => { 
    e.target.value = id 
    console.log(e.target.value); 
} 

но когда я представить свою форму в категории массива я получить

Category: Array[0] 
    "" : true 
    length : 0 

Значение по-прежнему логическое значение: X

мне нужно значение стать массив как

category['id-1', 'id-n'] 

ответ

0

<div className={classNameContentGroup}> 
    { items.map((item) => (
     <div className={`${classNameContent } ` + "width-1/[email protected]"}> 
      <input 
       {...input} 
       name={nameR} 
       type="checkbox" 
       value={ item.value } 
       className={className} 
       id={ `${nameR}-${item.value}` } 
      /> 
      <label className={classNameLabel} htmlFor={ `${ nameR}-${item.value}` }> 
       {item.label} 
      </label> 
     </div> 
    )) 
    } 
    </div> 
    { touched && (error && <span className="form-control-feedback">{error}</span>) } 
</FormGroup> 
+1

Пожалуйста, объясните свое решение! – Benjamin