我有一个应用程序,需要动态设置元素的高度(让我们说“ app-content”)。它获取应用程序“ chrome”的高度,然后减去它的高度,然后将“ app-content”的高度设置为在这些约束内适合100%。这对于香草JS,jQuery或Backbone视图来说非常简单,但是我正在努力弄清楚在React中执行此操作的正确过程是什么?
下面是一个示例组件。我希望能够将app-content
的高度设置为窗口的100%减去ActionBar
and 的大小BalanceBar
,但是如何知道何时呈现所有内容以及将计算内容放在此React类的什么位置?
/** @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;
当我需要打印接收大量数据并在画布上绘画的react组件时,我遇到了奇怪的情况。我已经尝试了所有提到的方法,但没有一种方法对我可靠地起作用,在setTimeout中使用requestAnimationFrame可以在20%的时间内获得空的画布,因此我做了以下工作:
基本上,我做了一个requestAnimationFrame的链,不确定是否是个好主意,但是到目前为止对我来说这在100%的情况下都有效(我使用30作为n变量的值)。