2017-08-02 15 views
0

したがって、JSX構文を使用してReactでコンボボックスを定義しようとしています。ただし、最初のレンダリングでは、表示値ではなくデフォルト値が表示されます。 ComboBoxは私のコードで持っているカスタムReact要素です。ここでコンボフィールドは、表示値の代わりにデフォルト値を表示します。

コードされる -

**UI file** 
export default class UI extends Component { 
    render() { 
    const { store } = this.props; 
    return (
     <div> 
     <Form horizontal> 
      <ComboBox value={store.defaultValue}> 
      <Option value={"internalValue1"}>{'DisplayValue1'}</Option> 
      <Option value={"internalValue2"}>{'DisplayValue2'}</Option> 
      </ComboBox> 
     </Form> 
     </div> 
    ); 
    } 
} 

**store file** 
import { observable } from 'mobx'; 

export default class store{ 
    @observable defaultValue= "internalValue1"; 
} 

次のコードは、レンダリング初期でコンボボックスの表示値としてinternalValue1を示しています。 DisplayValue1自体を最初のレンダリングでどのように表示するのですか?

答えて

0

レンダリングが呼び出されるたびに常に値がstore.defaultValueに設定されているためです。

ComboBoxコンポーネントでonChangeのようなものを持っており、変更があるたびに状態を更新し、コンストラクタでComboBox

constructor(props) { 
    const { store } = props; 
    this.state = { comboBoxValue: store.defaultValue }; 
} 

render() { 
    ... 
    <ComboBox 
     value={this.state.comboBoxValue} 
     onChange={(e) => this.setState({ comboBoxValue: e.target.value })} 
    > 
     <Option value={"internalValue1"}>{'DisplayValue1'}</Option> 
     <Option value={"internalValue2"}>{'DisplayValue2'}</Option> 
    </ComboBox> 
    ... 
} 
+0

のデフォルト値を追加し、私はComboBoxコンポーネントでonChangeイベントを追加しました。ただし、comboBoxValueプロパティを読み取ることができないというエラーがスローされます。申し訳ありませんが、ReactとJSXは全く新しいものです。 – ross

+0

状態の 'comboBoxValue'のデフォルト値を設定する必要があります。 – pratZ

+0

私はそれを試みた。しかし、それはまだ動作しません。デフォルト値を表示し続けます。 – ross

関連する問題