延迟渲染React组件
我有一个React组件,其中有许多子组件。我不希望立即渲染子组件,而是要经过一段时间的延迟(对于每个子组件而言,它们是统一的还是不同的)。
我想知道-有没有办法做到这一点?
回答:
我认为最直观的方法是给孩子一个“ wait”
prop
,在从父代传递过来的持续时间内隐藏该组件。通过将默认状态设置为隐藏,React仍会立即渲染组件,但是直到状态更改后它才可见。然后,您可以设置componentWillMount
为调用一个函数,以在通过道具传递的持续时间之后显示它。
var Child = React.createClass({ getInitialState : function () {
return({hidden : "hidden"});
},
componentWillMount : function () {
var that = this;
setTimeout(function() {
that.show();
}, that.props.wait);
},
show : function () {
this.setState({hidden : ""});
},
render : function () {
return (
<div className={this.state.hidden}>
<p>Child</p>
</div>
)
}
});
然后,在“父级”组件中,您需要做的就是传递希望子级显示之前等待的持续时间。
var Parent = React.createClass({ render : function () {
return (
<div className="parent">
<p>Parent</p>
<div className="child-list">
<Child wait={1000} />
<Child wait={3000} />
<Child wait={5000} />
</div>
</div>
)
}
});
这是一个演示
以上是 延迟渲染React组件 的全部内容, 来源链接: utcz.com/qa/433447.html