【发布时间】:2016-10-11 18:40:09
【问题描述】:
打开了一个新问题:Meteor / ReactJS - UI blinking issue: rendering twice before and after checking a database
NEW ISSUE 有更详细的例子
Meteor + ReactJS App:我需要检查一个数据库(集合)是否已经有一个值,并根据它决定显示什么。
这是我所拥有的:
render() {
if (this.props.companies.length) {
return (
<div className="container">
{this.renderCompanies()}
</div>
);
} else {
return (
<div className="container">
<header id="addCompanyForm">
<h1>Add Company</h1>
<form onSubmit={this.handleSubmit.bind(this)} >
<input
type="text"
ref="companyName"
className="form-control"
placeholder="Type a new company name"
/>
</form>
</header>
</div>
);
}
}
我的问题:this.props.companies.length 是 0、0,如果我的收藏中已经有一家公司,它只有第三次变成 1。因此,它会在第一秒显示表单,然后在最终接收到集合值并更改公司详细信息时将其隐藏。我怎样才能在第一秒消除闪烁并立即显示正确的语句。我也尝试了 React 生命周期 + 会话,但没有任何帮助。
【问题讨论】:
-
您是否使用
createContainer从数据库中获取数据? -
是的 - createContainer(() => { ... }
-
Meteor 和 ReactJS 已在标签中注明 - 无需将它们添加到标题中。