2017-08-24 4 views
0

Je veux créer un composant, qui se compose de Datepicker et ChoiceGroup en utilisant ReactJs et office365. Le premier rendu DatePicker doit être désactivé, et lorsque nous choisissons le bouton radio personnalisé dans ChoiceGroup il doit être enabled.Piece de code:DatePicker désactiver l'erreur

<div> 
        <ChoiceGroup 
         defaultSelectedKey='all' 
         onChange={ this._onChange } 
         label='Date' 
         options={ [ 
          { 
           key: 'all', 
           text: 'All' 
          }, 
          { 
           key: 'thisWeek', 
           text: 'This week', 
          }, 
          { 
           key: 'lastWeek', 
           text: 'Last week', 
          }, 
          { 
           key: 'thisMonth', 
           text: 'This month', 
          }, 
          { 
           key: 'custom', 
           text: 'Custom', 
          } 
         ] } 

        /> 

          <DatePicker 
           label='label' 
           isRequired={ false } 
           disabled={ pickerDisabled } 
           strings={ strings } 
           allowTextInput={ false } 
           value={ value } 
          /> 

       </div> 

Préparateur a disabled param et je voulais changer dans la méthode ChoiceGrou:

onChange = (ev, option) => { 
     console.dir(option); 
     if(option.key === 'custom') { 
      this.setState({ 
       pickerDisabled: false 
      }) 
     } else { 
      this.setState({ 
       pickerDisabled: true 
      }) 
     } 
    } 

Cette méthode fonctionne et modifie le paramètre, mais la désactivation du composant datepicker ne change pas. il reste le même et je me suis erreur dans la console lorsque je clique sur un bouton radio:

Exception in DatePicker.componentWillReceiveProps(): TypeError: date1.getFullYear is not a function 

Quelle peut être la raison de cette erreur?

Répondre

1

Il semble que vous passez un value invalide à la composante DatePicker, je pense (sans plus de contexte/info) est que value est null/undefined par défaut et DatePicker par défaut le jour en cours, mais le value est en cours d' par les boutons radio et ce n'est pas une valeur valide (basé sur l'erreur, il semble que DatePicker attend un objet Date (il essaie d'appeler getFullYear() dessus), mais value est une chaîne).

Vérifiez la documentation du composant DatePicker pour savoir ce qu'il attend dans son accessoire value et mettez à jour en conséquence.

+0

vous avez raison je mets une nouvelle Date() à la valeur et ça marche, merci –