React-Router 和 Meteor 无法在刷新时使用参数渲染路由

Posted

技术标签:

【中文标题】React-Router 和 Meteor 无法在刷新时使用参数渲染路由【英文标题】:React-Router and Meteor fails to render route with parameters on refresh 【发布时间】:2016-06-12 21:20:46 【问题描述】:

我目前正在开发的应用程序使用带有 react 和 react-router 的流星来提供路由功能。我有一段代码接受路由参数并使用该 ID 呈现项目:

<Route path='/ItemView/:itemID' component=ItemView/>

代码从一个链接中可以正常工作,该链接对路径中的项目 ID 进行编码并正确呈现。但是,从浏览器刷新或在浏览器中手动输入链接时,不会呈现任何内容。它给出了以下错误:

"Exception from Tracker recompute function:" meteor.js:880:10
"TypeError: prevComponentInstance is null"

我应该如何处理这个问题?我是否没有正确设置某些内容,或者我是否应该只是避免让人们以某种​​方式刷新或重新加载链接的浏览器版本。非参数化链接也不会发生这种情况。在这些情况下,刷新工作正常,没有投诉。

我意识到我可以使用 Picker 之类的东西来创建服务器端路由,但我希望我可以使用更简单的东西。

itemview 分支上提供了完整代码:

https://github.com/ClaaziX/foodshare/tree/itemview

谢谢。

【问题讨论】:

【参考方案1】:

我在我的应用程序中遇到了同样的问题。在我的搜索中,我偶然发现了 Meteor 论坛上的这个帖子:

https://forums.meteor.com/t/tracker-crashing-with-react-data-meteor/15287/2

正如回复正确指出的那样,发生错误是因为在创建容器时我们的订阅尚未准备好,并且未能为组件的 prop 返回有效值。

返回一个空对象 而不是 nullundefined(数据库查询可能会这样做)应该可以解决问题

【讨论】:

以上是关于React-Router 和 Meteor 无法在刷新时使用参数渲染路由的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Meteor 和 React 获取用户注册的 rif

无法在服务器端使用 fs 和 webshot 与 Meteor(galxy 托管)

React-Router 无法在组件内导入组件

XMLHttpRequest 无法加载 - Meteor 和 FSCollection 没有“Access-Control-Allow-Origin”

在 Mac 上,Meteor 和 MongoDB 的最佳数据 GUI 是啥?

Meteor 开发人员 - 有没有人修复 Meteor 无法在 iOS 10 iPhone 6 Plus 上运行的问题?