2017-11-08 11 views
-1

私はcategory selectドロップダウンを持っています。この時点で、私は配列で仮想データを使用しています。ReactJS - onChangeイベントを使用している間にマップできません

constructor() { 
    super(); 
    this.state = { 
     search: '', 
     categories: '', 
     products: '', 
     categories: ['Technology', 'Sport', 'Fashion', 'Clothes'], 
    } 

はその後、私はそれ

<div className="col-lg-4"> 
    <select id="categories" className="form-control"> 
     { 
     this.state.categories.map((i, index) => <option key={index} value={i} >{i}</option>) 
     } 
    </select> 
</div> 

て、それが動作します。この方法を反復するためにマッピングを使用しています。しかし、私が選択したカテゴリに応じて状態を変更したいのですが、私はselectonChange={handleCategories}を追加するとき、私はエラーを取得する:

Uncaught TypeError: this.state.categories.map is not a function 

グーグルでは、私は人々が通常のオブジェクトとのマッピングを使用しようとしているときに問題が発生した気づい(のみ作品配列のために)しかし、私は私の問題へのリンクを見つけることができませんでした。

に動作していない:

<div className="col-lg-4"> 
    <select id="categories" onChange={handleCategories} className="form-control"> 
     { 
     this.state.categories.map((i, index) => <option key={index} >{i}</option>) 
     } 
    </select> 
</div> 
+0

更新コードで問題を認識しませんワーキング。どのように 'onChange'関数を渡していますか? –

+0

@プラカシ更新 – Seinfeld

+1

オプションを変更するとエラーが発生しますか?もしそうなら、 'handleCategories'関数を表示します。 –

答えて

-1

あなたはthis.handleCategories.bind(this)を使用してインスタンスに機能をバインドする必要があり、そうでなければ機能がないstate.categories

+0

私はこのように 'this.handleCategories = this.handleCategories.bind(this)'をバインドしましたが、とにかくエラーになっている正確な場所がメソッドにありました。 – Seinfeld

+0

@Seinfeldあなたはあなたが問題を解決したと言っていますか? – brandNew

+0

はい、 'target.value'を使うのを忘れてしまいました。 – Seinfeld

関連する問題