2016-06-30 6 views
3

wiki quote apiを使用して有名人(Bob Dylanなど)からの引用を表示するアプリを作成しようとしています。React Nativeでjsonオブジェクトの文字列にアクセスするには

は、要求URLは次のようになります。

https://en.wikiquote.org/w/api.php?format=json&action=parse&page=Bob_Dylan&prop=text 

一緒に働くのネイティブ要求を反応させるのがあります。

componentWillMount() { 
Api().then((response) => { 
    this.setState({ 
    quote:response.parse.text 

    }) 

}); 
} 

私は引用符を表示しようとする、しかし、それはの形でありますオブジェクトを取得し、ビュー内の[オブジェクトオブジェクト]を取得します。コンソールに私が受け取る:

可能な未処理プロミス除去(ID:0): オブジェクトが反応子として有効ではありません(実測値:オブジェクトキーで{})。子コレクションをレンダリングする場合は、代わりに配列を使用するか、ReactアドオンのcreateFragment(オブジェクト)を使用してオブジェクトをラップします。レンダリング方法がTextであることを確認します。 不変の違反:オブジェクトがリアクションの子として有効ではありません(見つかった:キーが{}のオブジェクト)。子コレクションをレンダリングする場合は、代わりに配列を使用するか、ReactアドオンのcreateFragment(オブジェクト)を使用してオブジェクトをラップします。レンダリング方法がTextであることを確認します。

試してみると、response.parse.text.*トークンエラーが発生します。どのようにこれを修正するための任意の提案?

+1

response.parse.text ['*'] '..' * 'は特殊文字です – azium

答えて

2

あなたは明示的にそのjson()メソッドを呼び出すことにより、Objectresponseを有効にする必要があり、同様に:

var url = 'https://en.wikiquote.org/w/api.php?format=json&action=parse&page=Bob_Dylan&prop=text'; 

fetch(url) 
    .then((response) => response.json()) 
    .catch((error) => console.warn("fetch error:", error)) 
    .then((response) => console.log(response.parse)) 

の作業例:https://rnplay.org/apps/EqyMdA

0

あなたは(response.text使用することができます)の代わりにresponse.jsonの( )

var url = 'https://en.wikiquote.org/w/api.php? 
fetch(url) 
    .then((response) => response.text()) 
    .catch((error) => console.warn("fetch error:", error)) 
    .then((response) => console.log(response.parse)) 
関連する問題