2017-07-31 12 views
1

私はチームと競争のためのサインアップパートを持っていますが、私がしようとしているのはユーザーが競争を選択したときです。チームが選択された場合は競技が選択され、事前にhepのおかげでプロモーションフィールドは表示されません。選択したオプションに基づいてフィールドを表示しようとしています

 React.Component { 
      constructor(props) { 
      super(props); 
      this.state = {name: '', email: '', password: ''}; 
      } 

      handleChange(event) { 
      this.setState({ [event.target.name]: event.target.value }); 
      } 

      handleSelect(event, index, value) { 
      this.setState({type: value}); 
      } 

      handleSignup(event) { 
      event.preventDefault(); 
      this.props.dispatch(signup(this.state.name, this.state.email, this.state.password, this.state.promo, this.state.type)); 
      } 



      render() { 
      return (
       <div className="login"> 
       <div className="panel"> 
        <div className="body"> 
        <legend>Create an account</legend> 
        <SelectField 
         floatingLabelText="User or Admin" 
         value={this.state.type} 
         name="type" id="type" 
         onChange={this.handleSelect.bind(this)} 
        > 
         <MenuItem value={"USER"} primaryText="User" /> 
         <MenuItem value={"ADMIN"} primaryText="Admin" /> 
        </SelectField> 

        <TextField 
         hintText="Promo Code" 
         name="promo" id="promo" autoFocus 
         value={this.state.code} onChange={this.handleChange.bind(this)} 
         floatingLabelText="Promo Code" 
        /> 
+2

あなたがショーに書かれているコードを期待しています/プロモーションフィールドを非表示にするには?あるいはコードを書く方法を尋ねていますか? – Lewis42

答えて

0

状態のタイプは「COMPETITION」が含まれている場合にのみ条件付きテキストフィールド「プロモーションコードを」レンダリング:{ condition ? <YourField.../> : null }

サラウンドフィールド:

{this.state.type === 'COMPETITION' 
     ? <TextField 
      hintText="Promo Code" 
      name="promo" id="promo" autoFocus 
      value={this.state.code} onChange={this.handleChange.bind(this)} 
      floatingLabelText="Promo Code" 
     /> 
     : null} 
+0

また、私はプロモーションコードを検証しようとしていますが、私はプロモコードをハードコードしたい、ユーザーはそのコードを入力しなければなりません。 – niharb

+0

私は入力が目的の単語と一致するかどうかをチェックする関数を追加するためにonBlurを使用しようとしています。少し助けが必要 – niharb

+0

これはすでに次の質問です。 StackOverflowの別の質問にお尋ねください。私は私の答えで示唆したように実行する "選択したオプションに基づいてフィールドを表示する"を得ることができますか? –

関連する問題