レンダリングのために外部Webサービスを使用するReactコンポーネントがあります。 レンダリングの前にデータをロードしたいのですが、検索エンジンでインデックスを作成したいからです。ここでReact.jsでレンダリングする前にRESTリソースを消費する
は私のコンポーネントです:
class AboutPage extends React.Component {
async componentWillMount() {
let response = await EventWS.doSearch();
this.setState({
eventList : response.data
})
}
render() {
/* ... */
}
}
(私はそれを助けることができると思ったので、非同期/のawaitを使用しようとしたが、ありません)。 componentWillMountが終了した後にSETSTATEが行われていることを示す
Warning: setState(...): Can only update a mounting component. This usually means you called setState() outside componentWillMount() on the server. This is a no-op. Please check the code for the FluxContainer(AboutPage) component.
:サーバー側レンダリングでページをロードしようとすると
私は警告を受けました。
私の具体的なケースでは、これを克服する最良の方法は何ですか?同期的にajaxコールを行う簡単な方法はありますか?そうすることをお勧めしますか?
ありがとうございます。
編集:私は同期呼び出しを行うことができ、ライブラリを発見した : https://github.com/ForbesLindesay/sync-request
をしかし、それは、それは生産に適していないと述べています。だから私は少しdisapointed。
このチケットでは、async componentWillMount https:// githubについて議論しています。 .com/facebook/react/issues/1739おそらくあなたはそこにsomポインタを見つけることができます – jontro