当我从公共链接(react-router)访问应用程序或重新加载应用程序时,Meteor Pub/sub 不起作用
Posted
技术标签:
【中文标题】当我从公共链接(react-router)访问应用程序或重新加载应用程序时,Meteor Pub/sub 不起作用【英文标题】:Meteor Pub/sub does not work when I access the application from a public link (react-router) or when I reload it 【发布时间】:2022-01-22 23:44:06 【问题描述】:我的 react-router V5 上有一个公共链接。
<Router history=browserHistory>
<Switch>
<Route exact path="/colaborativo/:id" component=Colaborativo/>
<PrivateRoute>
...
当我通过按钮访问链接时,应用程序正常工作:从 url 检索参数,订阅集合并检索文档。由于这是一个公共链接,我需要直接从链接访问它,而无需通过前一个屏幕或按下按钮。 但是,当我用 F5 键重新加载页面,或者当我尝试从另一个选项卡通过链接访问时,应用程序无法运行,因为 Meteor 同步没有发生并且道具仍然未定义。我得到了错误:
Uncaught TypeError: Cannot read properties of undefined
这是制作 pub/sub 的代码部分:
export default withTracker(
() =>
let id = useParams();
console.log(id)
const handles = [
Meteor.subscribe(
"experienciaOne",
id
)
];
const loading = handles.some(handle => !handle.ready());
var laExp = Experiencias.findOne(id)
console.log(laExp)
return
isLoading: loading,
Experiencia: laExp
;
)(Colaborativo);
这是我的 publish.js 中的出版物:
Meteor.publish("experienciaOne", function(id)
let rta = Experiencias.find( _id: id );
return rta
);
【问题讨论】:
【参考方案1】:我通过使用属性替换状态来解决它。显然,状态是在同步之前执行的。
【讨论】:
以上是关于当我从公共链接(react-router)访问应用程序或重新加载应用程序时,Meteor Pub/sub 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在带有 react-router 的 React 中,当我从一个复杂的视图中导航出来,然后直接返回时,如何保留一个人的所有视图选择?
React 应用程序可以链接到公共文件夹上的静态 html 吗?