2017-08-11 75 views
0

我創建了一個無線電組件,但點擊時一點兒也不顯示檢查 這裏是代碼如何獲取單選按鈕組件的默認值?

import React from 'react'; 
import classnames from 'classnames'; 

const RadioButton = (field) => { 

    const inputClasses = classnames('form-group has-feedback ',{ 
    'has-error': field.meta.touched && field.meta.error, 
    }); 
    console.log(field.input.value) 
    return(
    <div className={inputClasses}> 
     <label className="radio-inline custom-radio nowrap"> 
      <input 
      type="radio" 
      name={field.id} 
      onClick={e => field.input.onChange(field.val)} 
      /> 
     <span>{field.label}</span> 
     </label> 
    </div> 
); 
}; 

export default RadioButton; 

這裏領域:

    <Field 
       component={RadioButton} 
       label ="Yes" 
       name="person.gender" 
       id="person.gender" 
       val={true} 
       /> 

       <Field 
       component={RadioButton} 
       label ="No" 
       name="person.gender" 
       id="person.gender" 
       val={false} 
       /> 

那麼,如何得到默認值,初始值?

回答

0

我想默認值

<Field 
 
    component={RadioButton} 
 
    label ="No" 
 
    name="court.lit" 
 
    id="court.lit" 
 
    val={field.val} 
 
    defaultChecked={false} 
 
/>

如果你想分享從父Field組件,您有它的價值傳遞給孩子的價值。然後傳遞給RadioButton組件。

<input 
 
    type="radio" 
 
    name={field.id} 
 
    value={field.val} 
 
    onClick={e => field.input.onChange(field.val)} 
 
/>

,但點擊時一點兒也不顯示檢查

你錯過了value

+0

我怎樣才能得到初始值? – Tim

+0

您無法獲得初始值,您可以爲無線電組件的值屬性設置初始值。 –

+0

@Tim:更新了答案 –

0

當使用redux-form庫(我假設是在給定使用field.meta和的情況下),你一般要遵循這個模式:

<input 
    {...field.input} 
    // your fields here 
/> 

這樣,onChangevalue等領域都爲您設置。