我试图在Meter + React中获得一些条件渲染。我只希望显示一个组件,如果从集合返回的项目数=== 0。
我试过了:
renderInputForm () {
if (Tokens.find().count()) return;
return (<TokenForm />);
}
并将{this.renderInputForm()}放在主render()中,但是在隐藏它之前它会闪烁一瞬间......
我知道为什么闪光灯正在发生但是试图避免闪光......
答案 0 :(得分:0)
您必须等待数据完成同步。闪存就在那里,因为最初的MiniMongo系列是空的。 (另外,您可能希望避免渲染函数中的export const MyComponent = createContainer(() => {
let subscription = Meteor.subscribe('something');
if (!subscription.ready()) return {};
return {
tokens: Tokens.find().fetch()
}
}, InternalComponent);
。)
假设您使用Meteor 1.3.x:
props.tokens
然后检查React组件中是否存在class InternalComponent extends React.Component {
render() {
if (!this.props.tokens || this.props.tokens.length > 0) return;
return <TokenForm />;
}
}
。
return
在此处了解有关订阅的更多信息:http://docs.meteor.com/#/full/meteor_subscribe