React-Router 和 Meteor 无法在刷新时使用参数渲染路由
React-Router and Meteor fails to render route with parameters on refresh
我目前正在开发的应用程序使用 meteor with react 和 react-router 来提供路由功能。我有一段代码接受路由参数并呈现具有该 ID 的项目:
<Route path='/ItemView/:itemID' component={ItemView}/>
代码在 link 中运行良好,它对路径中的项目 ID 进行编码并正确呈现。但是,从浏览器刷新或在浏览器中手动输入 link 时,不会呈现任何内容。它给出以下错误:
"Exception from Tracker recompute function:" meteor.js:880:10
"TypeError: prevComponentInstance is null"
我该如何处理?我是不是没有正确设置某些东西,或者我应该只是避免让人们以某种方式刷新或重新加载 link 的浏览器版本。对于非参数化 links 也不会发生这种情况。在这些情况下,刷新工作正常,没有任何投诉。
我知道我可以使用类似 Picker 的东西来创建服务器端路由,但我希望有更容易使用的东西。
完整代码可在 itemview 分支上获得:
https://github.com/ClaaziX/foodshare/tree/itemview
谢谢。
我的应用程序遇到了同样的问题。在我的搜索中,我偶然发现了流星论坛上的这个帖子:
https://forums.meteor.com/t/tracker-crashing-with-react-data-meteor/15287/2
正如回复正确指出的那样,发生错误是因为在创建容器时我们的订阅尚未准备好,并且未能return组件属性的有效值。
返回空对象 {}
而不是 null
或 undefined
(因为数据库查询可能会这样做)应该可以解决问题
我目前正在开发的应用程序使用 meteor with react 和 react-router 来提供路由功能。我有一段代码接受路由参数并呈现具有该 ID 的项目:
<Route path='/ItemView/:itemID' component={ItemView}/>
代码在 link 中运行良好,它对路径中的项目 ID 进行编码并正确呈现。但是,从浏览器刷新或在浏览器中手动输入 link 时,不会呈现任何内容。它给出以下错误:
"Exception from Tracker recompute function:" meteor.js:880:10
"TypeError: prevComponentInstance is null"
我该如何处理?我是不是没有正确设置某些东西,或者我应该只是避免让人们以某种方式刷新或重新加载 link 的浏览器版本。对于非参数化 links 也不会发生这种情况。在这些情况下,刷新工作正常,没有任何投诉。
我知道我可以使用类似 Picker 的东西来创建服务器端路由,但我希望有更容易使用的东西。
完整代码可在 itemview 分支上获得:
https://github.com/ClaaziX/foodshare/tree/itemview
谢谢。
我的应用程序遇到了同样的问题。在我的搜索中,我偶然发现了流星论坛上的这个帖子:
https://forums.meteor.com/t/tracker-crashing-with-react-data-meteor/15287/2
正如回复正确指出的那样,发生错误是因为在创建容器时我们的订阅尚未准备好,并且未能return组件属性的有效值。
返回空对象 {}
而不是 null
或 undefined
(因为数据库查询可能会这样做)应该可以解决问题