2017-08-16 9 views
0

私はReactにオブジェクトのリストを持っています。私はオブジェクトの上に.mapできます。しかし、私はそれらをすべて望んでいません。私はプロパティに基づいてフィルタリングする必要があります。だから私はこれをやっている:配列をフィルタリングした後、.mapは関数ではありません

const myFilteredList = myList.filter((item) => { 
    return item.name === 'the filter'; 
    }); 

私はそれを行うならば、私はmyFilteredListの上にマッピングすることはできません。

Uncaught (in promise) TypeError: myFilteredList.map is not a function 

私はそれが今ではなくオブジェクトの配列だったことを意味するために、これを理解したので、私

let theArray = [] 
theArray = Object.keys(resultCampaigns).map(key => resultCampaigns[key]); 

しかし、私はまだオーバーtheArray

をマッピングすることはできません:配列に変換することを目指し、これを試してみました

これを行う正しい方法は何ですか?

+1

これは比較的正常な環境で動作するはずです... – jkris

+0

あなたは 'myList'データを表示できますか? –

+0

スタンドアロンJSでフィルタリングとマッピングを試してみましたか?これは[フィルタ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)が常に配列を返すように動作するはずです。 console.log 'myList'と' myFilteredList'を使用できますか? – user2340824

答えて

0

答えは、私がやろうとしていたものとは無関係なものでしたが、他の人が見ることができるようにここに投稿します。私の質問にレイアウトされているようにしようとしていたことはうまくいくでしょう。私はこれを行うことによって、私のrender()myFilteredListの値を設定したので、彼らは私のために動作しませんでした:

const myFilteredList = this.state; 

私はそれが私のフィルタ配列を上書きしたと信じています。それをしないでください。私は上記のコード行を削除しましたが、今は問題ありません。

私の本当の問題は、以下のコメントに概説されている:私はちょうど

this.state.myFilteredList 

を行うだけではなく、myFilteredList

EDITでアレイにアクセスしています。私は単純に中括弧を忘れていたconst { myFilteredList } = this.state;小さな変更を反映するように自分のコードを更新しました。

+0

このようにすることもできます:const {myFilteredList} = this.state; – Ved

+1

@Ved - Oh my gosh。それはまさに私が間違っていたことです。私は他のヴァールで括弧を使用していますが、なんらかの理由でこの欄に残しておきました。私はそのように戻しています。ありがとうございました。 –

関連する問題