私はサーバーからキーを取得し、このキーを使用して他のコンポーネントのデータを取得したいと考えています。URLを取得するタイミングはどちらですか
var Page = React.createClass({
getInitialState: function() {
var key = this.getKey();
return { key: key };
},
getKey: function() {
var key;
$.ajax({
url: Api.GetMasterkey,
dataType: 'json',
data: {
urlParamter:''
},
async: false,
success: function (data) {
key = data;
}.bind(this),
});
return key;
},
render: function() {
return (
<div>
<ContentA key={this.key} />
<ContentB key={this.key} />
</div>
);
}
});
module.exports = Page;
キーの値はurlPagramterによって決まります。 getKey関数でurlを解析しようとしていますが、urlがgetInitialStateの後にタイミングを示していることがわかります。
だから、どのタイミングでURLを取得するのが正しいのですか?私のデザインが間違っていたら、それを修正してください。
私の間違いは、私が得たタイミングは間違いなく、問題は他の機能にあります。私の質問のコードはサンプルのためのもので、私は 'key'がキーワードであることを忘れていました。私の問題は今解決されています。あなたのアドバイスはとても良いです。私は明日コードを記入します。ありがとうございました。 – MichaelMao
私はトップレベルのファイルではなく、私の最初のコンポーネントのAPIを呼び出します。 ContentAはキーで他のAPIを呼び出しますので、最初は最初のキーにします。 ContentAをキーなしで処理するには、コードを追加します。どのようなデザインが良いのか分かりません。 – MichaelMao
はい、わかっています。だからこそ、私は、Reactのことが起こる前にAPIを呼び出すという解決策があると言いました。 Ajaxが非同期であるため、今すぐ実装する方法では、初期レンダリングはいつでもAPIから結果を得る前に実行されます。 Javascriptはリクエストの実行を待っている間は実行を停止しません。 – dannyjolie