[解決済み] Reactの "after render "コード?
2022-03-23 13:39:03
質問
あるアプリで、ある要素(例えば"app-content")の高さを動的に設定する必要があります。アプリの"chrome"の高さを取り、それを引いて、その制約の中で100%フィットするように"app-content"の高さを設定するのです。これは、バニラJS、jQuery、またはBackboneビューで超簡単ですが、私はReactでこれを行うための正しいプロセスを理解するのに苦労しているのでしょうか?
以下はコンポーネントの例です。私は
app-content
の高さは、ウィンドウの100%から
ActionBar
と
BalanceBar
しかし、すべてがレンダリングされたときにどのように知ることができるのでしょうか、また、このReact Classのどこに計算のものを置くのでしょうか?
/** @jsx React.DOM */
var List = require('../list');
var ActionBar = require('../action-bar');
var BalanceBar = require('../balance-bar');
var Sidebar = require('../sidebar');
var AppBase = React.createClass({
render: function () {
return (
<div className="wrapper">
<Sidebar />
<div className="inner-wrapper">
<ActionBar title="Title Here" />
<BalanceBar balance={balance} />
<div className="app-content">
<List items={items} />
</div>
</div>
</div>
);
}
});
module.exports = AppBase;
解決方法は?
このメソッドは、コンポーネントがレンダリングされた後に一度だけ呼び出されます。つまり、あなたのコードは次のようになります。
var AppBase = React.createClass({
componentDidMount: function() {
var $this = $(ReactDOM.findDOMNode(this));
// set el height and width etc.
},
render: function () {
return (
<div className="wrapper">
<Sidebar />
<div className="inner-wrapper">
<ActionBar title="Title Here" />
<BalanceBar balance={balance} />
<div className="app-content">
<List items={items} />
</div>
</div>
</div>
);
}
});
関連
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] React JSX内のループ
-
[解決済み] Reactのこの3つの点は何をするところなのでしょうか?
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] React NativeとReactの違いは何ですか?
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
-
[解決済み] React jsのonClickはメソッドに値を渡すことができない
-
[解決済み] レンダリング後に入力フィールドにフォーカスを設定するには?
-
[解決済み] Reactで要素を表示・非表示にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
Vueにシンプルなメモ帳機能を実装
-
Vueの「データを聴く」原則を解説
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid