2015-10-14 1 views
1

Я получил свой компонент, который не будет проверять радио, когда я снова войду в/view /: id во второй раз. Я начал в своем компоненте списка с реактивным маршрутизатором по индексу сайта, я нажимаю кнопку просмотра элемента, радио проверяется, я возвращаюсь в свой список и перехожу к другому или тому же элементу, и он больше не проверяется , Когда я проверяю компонент в инструменте разработчика React, радио имеет свойство defaultChecked = true.REACT - defaultChecked не отображают атрибут проверки при второй загрузке

import React from 'react'; 
import { connect } from 'react-redux'; 

class LicenseRadios extends React.Component { 
    buildRadios() { 
    let { licenses, activeValue } = this.props; 

    return licenses.map(license => { 
     let checked = false; 

     if(activeValue !== undefined && activeValue === license.id){ 
     checked = true; 
     } 

     return (
     <div key={license.id} className="col l2"> 
      <p> 
      <input name="license" type="radio" id={'licenseRdo_' + license.id} value={license.id} defaultChecked={checked} /> 
      <label htmlFor={'licenseRdo_' + license.id}>{license.label}</label> 
      </p> 
     </div> 
    ); 
    }); 
    } 

    render() { 
    return (
     <div className="row"> 
     {this.buildRadios()} 
     </div> 
    ); 
    } 
} 

export default LicenseRadios; 

Я попытался изменить defaultChecked для атрибута checked, но это требует событие OnChange. Я не понимаю эту проблему. Может ли кто-нибудь помочь мне, пожалуйста?

Спасибо

ответ

1

defaultChecked опора только во время первоначальной визуализации. Если вам необходимо обновить значение в последующем рендере, вам нужно будет использовать функцию onChange для обработки изменений значений.

В документации вы найдете controlled components, чтобы лучше понять проблему, с которой вы сталкиваетесь.