我正在构建一个具有多个屏幕的React Native游戏。我试图实例化Ably一次,并在整个应用程序中使用它,而不必在每个屏幕上调用new Ably('api-key')
,因为这会创建多个新连接,并且无法保留单个连接ID。有没有一种方法可以构建它,这样我就可以定义
const client = new Ably('api-key')
在App.js
中一次,并在其他屏幕中使用?要么通过React Navigation道具将其作为道具传递,要么使用Context
?关于这方面的文档很少,因为他们的大多数文档只在一页上使用这一点。
Redux将无法工作。您可以创建一个Ably客户端,并使用props将其传递给其他组件,或者只使用React上下文使其可用于整个应用程序。使用redux存储Ably客户端将导致错误,因为Ably客户端不可串行。
请参阅https://reactjs.org/docs/context.html了解更多信息。
以下是一些例子:
https://github.com/ably-labs/react-hookshttps://ably.com/blog/ably-react-hooks-npm-package
干杯,
Richie