私のif文のすべてがデータです。私はAPIからかなり掴んでいます。もしこのif文を使って、利用可能かどうかをチェックしないと、小道具が定義されていないというエラーが出ます。最初にデータが正しいことを確認するifステートメントを置くと、レンダリングされません。すべてのデータが利用可能になったらGUIをどのように表示できますか?
renderWhenDataisAvailに「console.log( 'something')」を入れてIDEに保存すると、何らかの理由でレンダリングが再開され、GUIが表示されるため、データが正しいことが分かります私は見ることを望んでいる
EDIT:私は状態のthis.logicLayersとthis.logicLayersとthis.logicLayersByIdとeverytthingの最終的には 'this.logicLayers'と 'this.logicLayersById'変数が遅くなり、私のコンソールには最初は未定義と表示されますが、コンソールに2秒後にログが記録されると正しくロードされます。レンダリングがいくつかの試行のあとにレンダリングしようとするのを諦め、十分に長く待たないかのようです。
renderWhenDataIsAvail() {
if (this.state.pagesById && this.state.graphicLayersById && this.logicLayers && this.logicLayersById && this.state.pages && this.subComps) {
return (
<div>
{this.state.graphicLayers.map((id) =>
<GraphicLayer
key={id}
addLayerClick={this.addLayerClick}
addPageClick={this.addPageClick}
graphicLayer={this.state.graphicLayersById[id]}
logicLayers={this.logicLayers}
logicLayersById={this.logicLayersById}
pages={this.state.pages}
pagesById={this.state.pagesById}
subComps={this.subComps} />
)}
</div>
);
}
}
render() {
console.log(this.state); // these load eventually
console.log(this.logicLayers); // loads eventually but too slow?
console.log(this.logicLayersById); // loads eventually but too slow?
return (
<div>
{this.renderWhenDataIsAvail()}
</div>
);
}
えーえ[OK]を私は、これは意味が、それはあなたに感謝 – user1189352
を試してみましょう作ると思います:) – user1189352
助けたことがうれしい働いていた私は –