ReactJSでウィンドウオブジェクトを使用するにはどうすればよいですか?

hellomoto:

私はロードするGoogle APIのクライアントライブラリを自分の内側index.htmlonLoad='someMethod'別のJavaScriptファイル内のメソッドを呼び出します。その後、そのメソッドはコンソールに出力します。

クライアントライブラリは問題なく読み込まれますが、メッセージがコンソールに出力されません。メソッドがまったく呼び出されていないためだと思います。

ここに私がありますindex.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>

<body>
    <div id="app"></div>
    <script src="lib/vendors.js"></script>
    <script src="build/bundle.js"></script>
    <script src="https://apis.google.com/js/client.js?onload=handleGoogleClientLoad"></script>
</body>

handleGoogleClientLoadメソッドを含むJavaScriptファイルは次のとおりです。

import React from 'react';
import ReactDOM from 'react-dom';

import {Button} from 'react-bootstrap';

class MyApp extends React.Component {

handleGoogleClientLoad() {
    console.log('Success on load');
}

render() {
    return (
        <div>
            <Button>Click Me</Button>
        </div>
    );
  }
}


const app = document.getElementById('app');

ReactDOM.render(<MyApp />, app);

これがプレーンなJavaScriptの場合、メソッドは次のようになります。

window.handleGoogleClientLoad = function() {
  // Log to the console
};

es6にはwindowオブジェクトに似たものはありますか?

Aweary:

コンポーネントメソッドはwindowオブジェクトにアタッチされませんこれは、Google APIスクリプトが呼び出しを試みている可能性MyApp.handleGoogleClientLoadがあるエイリアスになりませんwindow.handleGoogleClientLoad

Google APIがコンポーネントのメソッドを呼び出すようにしたい場合、Google APIスクリプトがロードされる前または後にコンポーネントがマウントされる保証がないため、問題が発生します。コンポーネントがマウントされた後にスクリプトを挿入し、componentDidMountメソッドに関数を登録する必要があることを保証したい場合あなたはloadjsのようなものを使うことができます

componentDidMount() {
 window.handleGoogleClientLoad = function() {
  // log to console
 }
 loadjs('https://apis.google.com/js/client.js?onload=handleGoogleClientLoad')
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Angular 2でウィンドウオブジェクトを使用するにはどうすればよいですか?

分類Dev

'chrome.tabs.create()'で作成されたタブのウィンドウオブジェクトを取得するにはどうすればよいですか?

分類Dev

JavaScriptでMathオブジェクトのプロパティをウィンドウに公開するにはどうすればよいですか?

分類Dev

Pygameで更新せずにオブジェクトをウィンドウに永続的に貼り付けるにはどうすればよいですか?

分類Dev

Pygameで更新せずにオブジェクトをウィンドウに永続的に貼り付けるにはどうすればよいですか?

分類Dev

VBAで特定の外部アプリウィンドウ(オブジェクト)を参照するにはどうすればよいですか?

分類Dev

openGL c ++の同じウィンドウに2つのオブジェクトを描画するにはどうすればよいですか?

分類Dev

オブジェクト指向プログラミングを使用せずに、tkinterでキャンバスオブジェクトのサイズをウィンドウサイズに変更するにはどうすればよいですか?

分類Dev

vue jsでウィンドウオブジェクトにアクセスするにはどうすればよいですか?

分類Dev

セレンウェブドライバーを使用してvueオブジェクトの値を取得するにはどうすればよいですか?

分類Dev

ウィンドウオブジェクトのlocation属性にアクセスするにはどうすればよいですか?

分類Dev

JSONオブジェクトでドロップダウンの変更された値を使用するにはどうすればよいですか?

分類Dev

クラスに割り当てる動的オブジェクト名を作成するにはどうすればよいですか?/異なるTkinterのオブジェクト名で複数のウィンドウを作成する方法

分類Dev

RubyのJSONgemを使用してJSONオブジェクトにドリルダウンするにはどうすればよいですか

分類Dev

wpfのあるウィンドウから別のウィンドウの別のコントロールにオブジェクトをバインドするにはどうすればよいですか?(c#)

分類Dev

YOLOオブジェクト検出でバウンディングボックスの座標を取得するにはどうすればよいですか?

分類Dev

オブジェクトを何度もコピーするウィザードを作成するにはどうすればよいですか?

分類Dev

TkInter:オブジェクトを最初のウィンドウではなく2番目のウィンドウに表示するにはどうすればよいですか?

分類Dev

コンソールウィンドウでオブジェクトまたはキャラクターを移動させるためにタイマー/遅延を使用するにはどうすればよいですか?

分類Dev

このリンクからFlashオブジェクト/アセットをダウンロードするにはどうすればよいですか?

分類Dev

ウィジェットを含むボックスでインタラクティブを使用するにはどうすればよいですか?

分類Dev

Yesodでトークンウィジェットを生成するにはどうすればよいですか?

分類Dev

javascript 配列内のオブジェクトをフィルタリングしてカウントするにはどうすればよいですか?

分類Dev

ウェストンウィンドウを最小化するにはどうすればよいですか?

分類Dev

ウェストンウィンドウを最小化するにはどうすればよいですか?

分類Dev

UITableViewCell TextViewオブジェクトのライブワードカウントを実装するにはどうすればよいですか?

分類Dev

スイッチウィジェットがオンのときに着信をブロックするにはどうすればよいですか?

分類Dev

Silverstripe CMSで膨大な数の子オブジェクトをCSVとしてダウンロードするにはどうすればよいですか?

分類Dev

Silverstripe CMSで膨大な数の子オブジェクトをCSVとしてダウンロードするにはどうすればよいですか?

Related 関連記事

  1. 1

    Angular 2でウィンドウオブジェクトを使用するにはどうすればよいですか?

  2. 2

    'chrome.tabs.create()'で作成されたタブのウィンドウオブジェクトを取得するにはどうすればよいですか?

  3. 3

    JavaScriptでMathオブジェクトのプロパティをウィンドウに公開するにはどうすればよいですか?

  4. 4

    Pygameで更新せずにオブジェクトをウィンドウに永続的に貼り付けるにはどうすればよいですか?

  5. 5

    Pygameで更新せずにオブジェクトをウィンドウに永続的に貼り付けるにはどうすればよいですか?

  6. 6

    VBAで特定の外部アプリウィンドウ(オブジェクト)を参照するにはどうすればよいですか?

  7. 7

    openGL c ++の同じウィンドウに2つのオブジェクトを描画するにはどうすればよいですか?

  8. 8

    オブジェクト指向プログラミングを使用せずに、tkinterでキャンバスオブジェクトのサイズをウィンドウサイズに変更するにはどうすればよいですか?

  9. 9

    vue jsでウィンドウオブジェクトにアクセスするにはどうすればよいですか?

  10. 10

    セレンウェブドライバーを使用してvueオブジェクトの値を取得するにはどうすればよいですか?

  11. 11

    ウィンドウオブジェクトのlocation属性にアクセスするにはどうすればよいですか?

  12. 12

    JSONオブジェクトでドロップダウンの変更された値を使用するにはどうすればよいですか?

  13. 13

    クラスに割り当てる動的オブジェクト名を作成するにはどうすればよいですか?/異なるTkinterのオブジェクト名で複数のウィンドウを作成する方法

  14. 14

    RubyのJSONgemを使用してJSONオブジェクトにドリルダウンするにはどうすればよいですか

  15. 15

    wpfのあるウィンドウから別のウィンドウの別のコントロールにオブジェクトをバインドするにはどうすればよいですか?(c#)

  16. 16

    YOLOオブジェクト検出でバウンディングボックスの座標を取得するにはどうすればよいですか?

  17. 17

    オブジェクトを何度もコピーするウィザードを作成するにはどうすればよいですか?

  18. 18

    TkInter:オブジェクトを最初のウィンドウではなく2番目のウィンドウに表示するにはどうすればよいですか?

  19. 19

    コンソールウィンドウでオブジェクトまたはキャラクターを移動させるためにタイマー/遅延を使用するにはどうすればよいですか?

  20. 20

    このリンクからFlashオブジェクト/アセットをダウンロードするにはどうすればよいですか?

  21. 21

    ウィジェットを含むボックスでインタラクティブを使用するにはどうすればよいですか?

  22. 22

    Yesodでトークンウィジェットを生成するにはどうすればよいですか?

  23. 23

    javascript 配列内のオブジェクトをフィルタリングしてカウントするにはどうすればよいですか?

  24. 24

    ウェストンウィンドウを最小化するにはどうすればよいですか?

  25. 25

    ウェストンウィンドウを最小化するにはどうすればよいですか?

  26. 26

    UITableViewCell TextViewオブジェクトのライブワードカウントを実装するにはどうすればよいですか?

  27. 27

    スイッチウィジェットがオンのときに着信をブロックするにはどうすればよいですか?

  28. 28

    Silverstripe CMSで膨大な数の子オブジェクトをCSVとしてダウンロードするにはどうすればよいですか?

  29. 29

    Silverstripe CMSで膨大な数の子オブジェクトをCSVとしてダウンロードするにはどうすればよいですか?

ホットタグ

アーカイブ