Meteor + React - 在访问文档时加载与 404



我有以下代码:

import React, { Component } from 'react';
import { withTracker } from 'react-meteor-data';
import Auctions from '../collections/Auctions';
class AuctionPage extends Component {
render() {
return (
<div>
{this.props.auction? this.props.auction.name : 'Loading'}
</div>
);
}
}
export default withTracker((props) => {
const auction = Auctions.findOne({_id: props.match.params.id});
return {
auction,
};
})(AuctionPage);

我仍然有自动发布包,并且此组件正在以下(动态(路由上呈现(我正在使用 react-router 进行路由(

<Route path={'/auction/:id'} component={AuctionPage} />

只要在集合中找到具有此 id 的文档,一切正常。 如果在集合中找到文档,则显示 name 属性,否则显示"正在加载"。 这才是真正的问题所在。如果作为参数传递的"id"在集合中不存在相应的文档怎么办? 它永远显示"正在加载"。

如何改为显示 404?

即使使用自动发布,如果没有订阅,您也无法确定您的文档是否存在,因为尚未加载或因为不在集合中。

基本上,自动发布为每个集合创建一个默认发布给所有客户端,该发布会立即返回所有文档。

但是,拥有大量文档可能会导致您不知道 Id 文档是否尚未加载的状态。

作为解决方法,您可以创建一个简单的发布,返回所有文档并订阅它。

最新更新