当前位置: 首页 > 知识库问答 >
问题:

ReactJS状态变化不会同时反映在不同会话中

雍兴修
2023-03-14

我正在使用ReactJS、Typescript和Firebase构建一个web应用程序,其中一个用户将能够监视与另一个用户的UI的更改和交互。两个用户可以同时看到相同的视图,并显示一些图像。例如,User1单击的任何图像都会更改其边框,这应该反映在User2的UI中。单独使用DOM、typescriptfirebase是可行的,但是使用ReactJS我面临很多困难。

第一个问题:是否可以在不使用状态或道具的情况下更新ReactJS中已创建和显示的组件?

从我目前所看到的来看,我认为这是不可能的。所以,

第二个问题:我试图单独使用状态来实现我所解释的,但是似乎每当User1改变状态时,显示给User1的组件都是单独重新渲染的,而User2的组件无法捕获状态的变化-渲染。这两个部件是相同的。我使用Chrome和火狐来运行应用程序与2个用户。有没有一种方法可以仅通过状态和道具来实现这一点?

我是这方面的初学者。任何帮助都将不胜感激。

共有1个答案

严斌
2023-03-14

如果使用redux之类的工具集中状态管理,应用程序状态应该可以表示为单个对象。然后,您应该能够向应用程序添加一些redux中间件,将任何状态更改推送到Firebase,然后从Firebase读回所有更改,并将它们推送到您的应用商店(通过操作)。

如果您确实希望在不更改道具的情况下更新组件,那么有一种forceUpdate方法。

 类似资料:
  • 问题内容: 我写了下面的简单代码 它打印- 我无法理解为什么无法打印 为什么更改实例状态不会反映在序列化对象中? 问题答案: 您已经写了 两次 该对象,但是只回读了 第一个对象 。因此,如果写入了该对象的两个副本,则需要添加第二次读取才能看到第二个副本。在从文件中读取之前关闭输出以确保刷新缓冲区也是一个好主意。 但是所有这些都说明了:只写一次给定的对象,然后对该对象的后续写操作只 引用 该对象,而

  • 问题内容: 我不确定这是否可能。 我的“活动”网站正在处理注册并将其保存到我们的数据库中,但是我们的主站点负责处理信用卡处理。通过在主网站上处理当前的购买,会话可用于将数据传递到付款/抄送屏幕。 不必更改我的付款代码(例如接受$ _GET参数),我的变量是否应该传递过来? 例: 我的页面在上面查找地址会话变量。 问题答案: 跨域会话ID 默认情况下,使用cookie传递会话ID。由于您的网站位于不

  • 我正在学习j2ee,如果问题看起来很基本请原谅。 在httpsession中,会话ID存储在客户端,与之相关的数据存储在服务器端。 现在,当我在POJO上使用CDI@SessionScoped时,这是否意味着EJB容器(?)在会话中存储pojo。(Session.SetAttribute(POJO)) CDI可以区分SFB、SLB和POJO吗?

  • 问题内容: 通过多个实例扩展Web应用程序是Azure云的最大优势之一。为了实现对我们的Web角色云应用程序的多个VM支持,我们正在实现Azure Redis缓存。我们正在使用RedisSessionStateProvider提供程序来维护会话状态。以下是web.config文件中会话管理的配置设置。 我们的问题是会话超时不会随着用户的回发而延长,假设我们的用户在10:00 AM登录到应用程序,那

  • 有状态会话bean定义如下: 无状态会话bean无状态会话bean不维护与客户端的会话状态。当客户机调用无状态bean的方法时,该bean的实例变量可能包含特定于该客户机的状态,但仅限于调用期间。当方法完成时,客户端特定状态不应保留。然而,客户端可能会更改池化无状态bean中实例变量的状态,并且此状态将保留到下一次调用池化无状态bean时。除了在方法调用期间,无状态bean的所有实例都是等效的,允

  • 需要一些帮助!!我对Drools中的有状态和无状态会话没有清晰的理解。我正在努力理解这一点,所以尝试了一个例子。 我在drools6.5版本上使用有状态和无状态会话测试了下面的drl,在这两种情况下都得到了相同的输出。根据我对无状态会话的理解,它应该只执行第一条规则,当应用程序对象在第一条规则中被修改时,第二条规则不应该被激活(“有效期”)。附加源代码。感谢您在这方面的帮助。