reactjs - React & RXJS 非标准
问题描述
与我习惯使用 Angular 相比,我在网上看到的使用 React 的 RXJS 实现乏善可陈。
我见过的所有实现示例都将订阅与声明放在同一个文件中。(有些在同一个文件中也有下一个)
我想在这里抽出一点,从存储的概念中抽象出来,做一些开箱即用的事情。
这是我在 Angular 中经常使用的一种模式,我希望能够在 React 中重现:
一个文件包含一堆 RXJS 主题声明。
它们在应用程序的各个组件中被订阅。
并且一些其他组件或相同的组件在这些主题上有 .next() 。
我将如何在 React 中做到这一点?
为简单起见,这里有一个三文件布局:
src
├app
│ └components
│ ├EmmitingComponent.tsx
│ └SubscribingCompoent.tsx
└services
└observables.tsx
让我们想象一下,它在 中声明了一个 observableobservable.tsx
并在 中订阅,SubscribingCompoent.tsx
并在单击EmmitingComponent.tsx
.
这是一个在网上找不到 React 文档的用例。
解决方案
请参考这个答案。您可以简单地使用该Async
组件并将其传递给您的 observables。如果您确实想要使用类似的服务方法,您可以提供上下文并将其分配给服务类的实例,并在服务本身上定义可观察对象。
return (
<Async select={[names$]}>
{result => <div>{result}</div>}
</Async>
);
推荐阅读
- multithreading - Java Security API 同步方法导致应用程序线程在高负载时挂起
- r - 使用来自另一个数据表的值更新数据表列
- javascript - 单击按钮时显示 DIV 容器的 Javascript 函数
- javascript - + 运算符的奇怪行为从何而来?
- python - 使用 x = threading.Lock() 将变量设置为锁定对象时出现语法错误
- kotlin - 在 kotlin 中如何将函数引用放入数组中
- ios - VIPER 子类化中的泛型类型。无法将类型“ChildType”的值分配给类型“ParentType”
? - for-loop - 如何更正代码以使循环在数据匹配时停止
- c# - Odata $expand 不适用于特定查询
- python - 如何制作一个按位置替换熊猫数据框元素的循环