axiosリクエストに反応します。setStateは応答オブジェクトを読み取ることができません

user9814109

何をしたいのか:グーグルプレイスAPIにリクエストを送信しようとしていますが、現在、ユーザー入力(onChange)を取得してリクエストを送信しています。グーグルプレイスからの応答が戻ってきたとき、私は場所の配列を期待しています。その場所の配列を使用して、視界の状態を応答の場所の配列に更新したいと思います。

私のコード:

import React, {Component} from 'react';
import axios from 'axios';

class Search extends Component {
    constructor(props) {
        super(props);

        this.state= {
            sights: 'cat',
            city:''
        }
    }

    onInputChange(city) {
        this.setState({city});
        this.handleSubmit(city);
    }

    handleSubmit(event) {
        axios.get(
            "https://maps.googleapis.com/maps/api/place/textsearch/json?query=attractions+in+" +
            this.state.city +
            "&key=AIzaSyC5d4W-ei6o_C3eCrnJl24nuaeuAemhoJQ",
                    {
                    mode: "no-cors",
                    header: {
                        "Access-Control-Allow-Orgin": "http://localhost:8080",
                        "Content-Type": "application/json",
                        "Access-Control-Allow-Headers":
                        "Origin, X-Requested-With, Content-Type, Accept"
                    },
                    withCredentials: true,
                    credentials: "same-origin"
                    }
                )
                .then((res) => console.log(res.data.results))
                .then((res) => {
                    this.setState({ sights: res.data.results });
                })
                .then(console.log('got here'))
                .catch(function(err) {
                    console.log("err", err);
                })
        }
    

    render(){
        return (
            <div>
            <h2>{this.state.city}</h2>
            <h4>{this.state.sights}</h4>
            <input 
                value={this.state.city}
                onChange={(event)=> this.onInputChange(event.target.value)} /> 
            </div>
        )
    }
}

export default Search;

私がテストしているもの:

.then((res) => console.log(res.data.results))
                    .then((res) => {
                        this.setState({ sights: res.data.results });
                    })
                    .then(console.log('got here'))

グーグルプレイスに電話をかけた後の私のコンソール:

(20)[{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{… }、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}]

err TypeError:evalで未定義のプロパティ 'data'を読み取れません(Search.jsx:63)

ここに着いた

したがって、res.data.resultsのconsole.logの後で、Googleプレイスの配列である必要なものを正確に取得しました。

その配列を使用して、それを自分の視界の状態に割り当てたいと思いましたが、未定義の「データ」のプロパティを読み取れませんというタイプエラーが発生します。console.log res.data.resultsを実行して配列を取得したため、これは私には意味がありません。応答オブジェクトも確認しましたが、dataという名前のプロパティがあります。

何か案は?

チューダーイリソイ

あなたは約束を連鎖させています。

この行

.then((res) => console.log(res.data.results))

チェーン内のundefined次の処理によって処理されるものが返されますthen()

だからそれをに変更します

.then((res) => { console.log(res.data.results)); return res })

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

反応-フックを使用すると、エラーが発生します-オブジェクトは反復できません(プロパティSymbol(Symbol.iterator)を読み取ることができません)

分類Dev

リクエストライブラリからjson応答を読み取ることができません

分類Dev

AJAX応答は[オブジェクトオブジェクト]、jqueryにあります-したがって、それを読み取ることができません

分類Dev

WebAPIはリクエストに応じてクレームを読み取ることができません

分類Dev

JavaのHTTPS GETリクエストで応答を読み取ることができません

分類Dev

RetrofitおよびRxJavaPOSTリクエストの文字列応答を読み取ることができません

分類Dev

AjaxリクエストからJavascriptオブジェクトを読み取ることができません

分類Dev

setStateを反応させると、「オブジェクトをレンダリングできません」というエラーが発生します

分類Dev

コンテキストAPIの使用中にこのエラーが発生します。TypeError:オブジェクトは反復可能ではありません(プロパティSymbol(Symbol.iterator)を読み取ることができません)

分類Dev

pingスクリプトを作成するPHPは、応答をオブジェクトに変換して読み取る必要があります

分類Dev

Angularはオブジェクトにアクセスできますが、プロパティを読み取ることはできません

分類Dev

switchステートメントを実行して配列を反復処理するとTypeErrorが返されます:オブジェクト '#<Object>'の読み取り専用プロパティ 'location'に割り当てることはできません

分類Dev

ServiceStackサービスは、JsonとXMLの両方として動的応答オブジェクトを返すことができません

分類Dev

スクレイピングを使用してウェブサイトをスクレイピングしているときに、エラー応答「NoneType」オブジェクトは反復できません」

分類Dev

反応中のオブジェクトの読み取り専用プロパティ「エクスポート」に割り当てることができないを解決するにはどうすればよいですか?

分類Dev

ブラウザは、クロスオリジンリクエストに含める資格情報を設定しても、フェッチAPIを使用してCookieを読み取ったり送信したりすることはできません

分類Dev

データベースまたはオブジェクトを読み取り専用で読み取ることができません

分類Dev

Angular 2/4はinitForm()でオブジェクトを読み取ることができません

分類Dev

ReactJSはsetState内の応答オブジェクトにアクセスできません

分類Dev

freadはファイルからオブジェクトを読み取ることができません

分類Dev

Reactは配列内のオブジェクトを読み取ることができません(状態)

分類Dev

Angularは配列内のオブジェクトを読み取ることができません

分類Dev

応答オブジェクトを破棄した後、「「応答」で「json」を実行できませんでした」エラーが発生する理由

分類Dev

Angular4ネストされたオブジェクトはnull値エラーを読み取ることができません

分類Dev

Relex Payments応答オブジェクトをテストしようとしていますが、サイトがマシンに接続できません

分類Dev

すべてのJSONオブジェクトを読み取ることができません

分類Dev

Pythonでjsonファイルを読み取ることができません。タイプエラーの取得:jsonオブジェクトは「TextIOWrapper」です

分類Dev

webdriver.ioでページオブジェクトを作成するとエラーが発生します。setValueは関数ではありません/未定義のプロパティ 'setValue'を読み取ることができません

分類Dev

リクエストに応答した後でそれを処理できるように、リクエストのJSONボディをどのように読み取ることができますか?

Related 関連記事

  1. 1

    反応-フックを使用すると、エラーが発生します-オブジェクトは反復できません(プロパティSymbol(Symbol.iterator)を読み取ることができません)

  2. 2

    リクエストライブラリからjson応答を読み取ることができません

  3. 3

    AJAX応答は[オブジェクトオブジェクト]、jqueryにあります-したがって、それを読み取ることができません

  4. 4

    WebAPIはリクエストに応じてクレームを読み取ることができません

  5. 5

    JavaのHTTPS GETリクエストで応答を読み取ることができません

  6. 6

    RetrofitおよびRxJavaPOSTリクエストの文字列応答を読み取ることができません

  7. 7

    AjaxリクエストからJavascriptオブジェクトを読み取ることができません

  8. 8

    setStateを反応させると、「オブジェクトをレンダリングできません」というエラーが発生します

  9. 9

    コンテキストAPIの使用中にこのエラーが発生します。TypeError:オブジェクトは反復可能ではありません(プロパティSymbol(Symbol.iterator)を読み取ることができません)

  10. 10

    pingスクリプトを作成するPHPは、応答をオブジェクトに変換して読み取る必要があります

  11. 11

    Angularはオブジェクトにアクセスできますが、プロパティを読み取ることはできません

  12. 12

    switchステートメントを実行して配列を反復処理するとTypeErrorが返されます:オブジェクト '#<Object>'の読み取り専用プロパティ 'location'に割り当てることはできません

  13. 13

    ServiceStackサービスは、JsonとXMLの両方として動的応答オブジェクトを返すことができません

  14. 14

    スクレイピングを使用してウェブサイトをスクレイピングしているときに、エラー応答「NoneType」オブジェクトは反復できません」

  15. 15

    反応中のオブジェクトの読み取り専用プロパティ「エクスポート」に割り当てることができないを解決するにはどうすればよいですか?

  16. 16

    ブラウザは、クロスオリジンリクエストに含める資格情報を設定しても、フェッチAPIを使用してCookieを読み取ったり送信したりすることはできません

  17. 17

    データベースまたはオブジェクトを読み取り専用で読み取ることができません

  18. 18

    Angular 2/4はinitForm()でオブジェクトを読み取ることができません

  19. 19

    ReactJSはsetState内の応答オブジェクトにアクセスできません

  20. 20

    freadはファイルからオブジェクトを読み取ることができません

  21. 21

    Reactは配列内のオブジェクトを読み取ることができません(状態)

  22. 22

    Angularは配列内のオブジェクトを読み取ることができません

  23. 23

    応答オブジェクトを破棄した後、「「応答」で「json」を実行できませんでした」エラーが発生する理由

  24. 24

    Angular4ネストされたオブジェクトはnull値エラーを読み取ることができません

  25. 25

    Relex Payments応答オブジェクトをテストしようとしていますが、サイトがマシンに接続できません

  26. 26

    すべてのJSONオブジェクトを読み取ることができません

  27. 27

    Pythonでjsonファイルを読み取ることができません。タイプエラーの取得:jsonオブジェクトは「TextIOWrapper」です

  28. 28

    webdriver.ioでページオブジェクトを作成するとエラーが発生します。setValueは関数ではありません/未定義のプロパティ 'setValue'を読み取ることができません

  29. 29

    リクエストに応答した後でそれを処理できるように、リクエストのJSONボディをどのように読み取ることができますか?

ホットタグ

アーカイブ