ランダムである必要があるのに、API呼び出しが繰り返しデータを受信するのはなぜですか?

jacksons123

そこで、見積もり、作成者、その他の情報を含むランダムなオブジェクトを受け取るためにAPI呼び出しを行うReactアプリケーションを構築しています。コンポーネントがマウントされると(ページの更新時に)、オブジェクトはランダム化されます。ただし、最初にAPIをプルする同じ関数にバインドされたボタンは、ページが読み込まれたときと同じオブジェクトのみを受け取ります。ランダム化はエンドポイントから提供され、コード内では提供されません。

受信したデータはページの更新時に一意であるが、onClickイベントでは一意でないため、これが機能しない理由はわかりません。

だから私が使っている私のコードのいくつかはここにあります:

私のAPIフェッチ関数:

httpCallout(){
    fetch('https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1')
    .then(response => response.json())
    .then((data) => {
      const quote = data[0].content;
      this.setState({
        quote: quote,
        author: data[0].title
      });
    });
  }

ライフサイクル関数内の呼び出し:

  componentDidMount(){
    this.httpCallout();

  }

そして要素

<button id="new-quote" className="btn btn-light" onClick={this.httpCallout}>New Quote</button>

繰り返しになりますが、クリックイベントごとに新しいデータを含む新しいオブジェクトを受け取ることを期待していますが、ページの読み込み時と同じデータが提供されています。

編集:それは単にキャッシュされているデータでした。{cache: "no-cache"}フェッチリクエストに追加しましたが、解決しました。質問は重複としてマークされていますが、私の問題はフェッチAPIを使用しており、jQueryまたはAJAXを使用していないため、解決策は少し異なる必要があります。

Titenis

で応答キャッシュを無効にする{cache: "no-cache"}

fetch(
'https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1',
 {cache: "no-cache"}
)

詳細:https//hacks.mozilla.org/2016/03/referrer-and-cache-control-apis-for-fetch/

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ランダムにする必要があるのに、while ループが同じステートメントを繰り返すのはなぜですか?

分類Dev

クラスコンストラクタが繰り返し呼び出されるのはなぜですか?

分類Dev

呼び出しに表示されるように、最初のパラメーターのラベルを複製する必要があるのはなぜですか?

分類Dev

API呼び出しからサービスを介してコンポーネントに返されるデータはオブジェクトであり、Angularの配列である必要があるようです

分類Dev

デコレータを呼び出す前に宣言する必要があるのに、関数は宣言しないのはなぜですか?

分類Dev

「gpupdate」呼び出しに/ forceフラグを追加する必要があるのはなぜですか?

分類Dev

C ++:呼び出しに一致する関数がありません:なぜ空のコンストラクターが必要なのですか?

分類Dev

ラムダ式はwhile()で呼び出されますが、ラムダ式の後に()を追加する必要があるのはなぜですか

分類Dev

ラムダの呼び出し演算子が暗黙的にconstであるのはなぜですか?

分類Dev

呼び出し元の関数が「future」を返す必要があるのはなぜですか?

分類Dev

VBOとglVertexAttribPointerの呼び出しの両方にデータを指定する必要があるのはなぜですか?

分類Dev

google map apiを呼び出した後にalert()を書く必要があるのはなぜですか

分類Dev

同じfoo.py内に別のfunctionBをインポートするfunctionAがfoo.py内にあります。functionAを呼び出してfunctionBを繰り返しインポートしないのはなぜですか?

分類Dev

パターンマッチングでこの関数の呼び出しを繰り返す必要がない方法はありますか?

分類Dev

c ++ 11:なぜエラーを受け取るのですか:std :: thread :: threadの呼び出しに一致する関数がありませんか?

分類Dev

イベントハンドラーが呼び出しではなく参照である必要があるのはなぜですか?

分類Dev

ラムダ呼び出しに2つのスタックフレームがあるのはなぜですか?

分類Dev

xinetd / inetdを使用して、サーバーがfflush()を呼び出す必要があるのはなぜですか?

分類Dev

明示的なデストラクタ呼び出しを行う必要があるのはいつですか?

分類Dev

javascript ajax呼び出しに必要なデータがあるのに、Googleチャートにはないのはなぜですか

分類Dev

GZIP形式のAPI呼び出しで受信したデータの取得に問題があります

分類Dev

mysqli_connect()が暗号化なしでパスワードパラメータを受信する必要があるのはなぜですか?

分類Dev

呼び出し可能オブジェクトがジェネレーターであるのに、なぜiter(v、w)がクラスを返すのですか?

分類Dev

なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

分類Dev

C ++標準では、コンパイラが基本型の変換演算子の呼び出しを無視する必要があるのはなぜですか?

分類Dev

Option <T>変数に対してtake()を呼び出す必要があるのはなぜですか

分類Dev

なぜresolve()を呼び出す必要があるのですか?

分類Dev

QueryParamsを受け入れるDjango(呼び出し可能なエラーである必要があります)

分類Dev

JavaのHashSetを繰り返す必要があるのはなぜですか?

Related 関連記事

  1. 1

    ランダムにする必要があるのに、while ループが同じステートメントを繰り返すのはなぜですか?

  2. 2

    クラスコンストラクタが繰り返し呼び出されるのはなぜですか?

  3. 3

    呼び出しに表示されるように、最初のパラメーターのラベルを複製する必要があるのはなぜですか?

  4. 4

    API呼び出しからサービスを介してコンポーネントに返されるデータはオブジェクトであり、Angularの配列である必要があるようです

  5. 5

    デコレータを呼び出す前に宣言する必要があるのに、関数は宣言しないのはなぜですか?

  6. 6

    「gpupdate」呼び出しに/ forceフラグを追加する必要があるのはなぜですか?

  7. 7

    C ++:呼び出しに一致する関数がありません:なぜ空のコンストラクターが必要なのですか?

  8. 8

    ラムダ式はwhile()で呼び出されますが、ラムダ式の後に()を追加する必要があるのはなぜですか

  9. 9

    ラムダの呼び出し演算子が暗黙的にconstであるのはなぜですか?

  10. 10

    呼び出し元の関数が「future」を返す必要があるのはなぜですか?

  11. 11

    VBOとglVertexAttribPointerの呼び出しの両方にデータを指定する必要があるのはなぜですか?

  12. 12

    google map apiを呼び出した後にalert()を書く必要があるのはなぜですか

  13. 13

    同じfoo.py内に別のfunctionBをインポートするfunctionAがfoo.py内にあります。functionAを呼び出してfunctionBを繰り返しインポートしないのはなぜですか?

  14. 14

    パターンマッチングでこの関数の呼び出しを繰り返す必要がない方法はありますか?

  15. 15

    c ++ 11:なぜエラーを受け取るのですか:std :: thread :: threadの呼び出しに一致する関数がありませんか?

  16. 16

    イベントハンドラーが呼び出しではなく参照である必要があるのはなぜですか?

  17. 17

    ラムダ呼び出しに2つのスタックフレームがあるのはなぜですか?

  18. 18

    xinetd / inetdを使用して、サーバーがfflush()を呼び出す必要があるのはなぜですか?

  19. 19

    明示的なデストラクタ呼び出しを行う必要があるのはいつですか?

  20. 20

    javascript ajax呼び出しに必要なデータがあるのに、Googleチャートにはないのはなぜですか

  21. 21

    GZIP形式のAPI呼び出しで受信したデータの取得に問題があります

  22. 22

    mysqli_connect()が暗号化なしでパスワードパラメータを受信する必要があるのはなぜですか?

  23. 23

    呼び出し可能オブジェクトがジェネレーターであるのに、なぜiter(v、w)がクラスを返すのですか?

  24. 24

    なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

  25. 25

    C ++標準では、コンパイラが基本型の変換演算子の呼び出しを無視する必要があるのはなぜですか?

  26. 26

    Option <T>変数に対してtake()を呼び出す必要があるのはなぜですか

  27. 27

    なぜresolve()を呼び出す必要があるのですか?

  28. 28

    QueryParamsを受け入れるDjango(呼び出し可能なエラーである必要があります)

  29. 29

    JavaのHashSetを繰り返す必要があるのはなぜですか?

ホットタグ

アーカイブ