当我从公共链接(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 吗?

AWS EC2 Windows实例无法通过公共IP访问

当我使用 <a> 标签跟随路线时,React-Router 正在刷新页面

如何使用 react-route 链接刷新页面

无法从Web应用程序访问Azure公共和私有证书