2017-04-09 6 views
0

ここでは、ユーザーの入力値を取得し、オブジェクトの配列から国をフィルタリングするコードを示します。このコードを実行すると、正しくフィルタリングされたオブジェクトが取得されています(ブラウザのコンソールで取得しています)が、問題を表示するには文字列を取得する必要があります。マップするにはreact TypeError:Object.valueは関数ではありません

render() { 
    const filterCountries = this.state.eachCountry.map((filterCountry) => { 
    return (<li>{filterCountry}</li>) 
    }) 
    return (<ul>{filterCountries}</ul>) 
} 

:私はあなたがリスト内のすべてのフィルターの国を示して反応するコンポーネントを作成する必要がある場合は、このような何かを試すことができますあまりにも

let matches = Countries.filter(v => v.name.toLowerCase().includes(this.state.value 
    )); 
console.log(matches); 
event.preventDefault(); 
this.state.eachCountry = matches; 

const filterCountries = matches.map((filterCountry) => 
<ul>{filterCountry.toString()}</ul> 
); 
alert(filterCountries.name); 
+0

何を達成しようとしていますか? 'filterCountries'はjsxの配列になりますので、実際に' .name'を実行することはできません。 – Krazibit312

+0

jsにhtmlを書きますが、文字列として引用しません: '

    ' + filterCountry.toString()+ '
' – Incognito

+0

@ Krazibit312 I各オブジェクトが次のように見える一致の値を取得する必要があります。 {名前: 'アンゴラ'、コード: 'AO'}、 –

答えて

0

filterCountry.valueを試してみました配列:

Mylist = ['a', 'b', 'c'] 
Mylist2 = mylist.map ((elem) -> {return elem + 1}) 
//Then mylist2 = ['a1', 'b1', 'c1'] 
関連する問題