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 返回有效值。
返回一个空对象 而不是
null
或 undefined
(数据库查询可能会这样做)应该可以解决问题
【讨论】:
以上是关于React-Router 和 Meteor 无法在刷新时使用参数渲染路由的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Meteor 和 React 获取用户注册的 rif
无法在服务器端使用 fs 和 webshot 与 Meteor(galxy 托管)
XMLHttpRequest 无法加载 - Meteor 和 FSCollection 没有“Access-Control-Allow-Origin”
在 Mac 上,Meteor 和 MongoDB 的最佳数据 GUI 是啥?
Meteor 开发人员 - 有没有人修复 Meteor 无法在 iOS 10 iPhone 6 Plus 上运行的问题?