IReactContext
类型:接口
IReactContext 对象是指向 React 实例的弱指针。它允许原生模块和视图管理器与应用程序以及其他原生模块和视图管理器进行通信。由于 IReactContext 是指向 React 实例的弱指针,因此在 React 实例卸载后,它的某些功能将不可用。当 React 实例在 ReactNativeHost 中重新加载时,之前的 React 实例会被卸载,然后创建一个新的 React 实例,并带有一个新的 IReactContext。
- 使用
Properties与其他组件共享原生模块的数据。 - 使用
Notifications与其他组件交换事件。 - 使用
CallJSFunction调用 JavaScript 函数,并使用EmitJSEvent引发 JavaScript 事件。 - 使用
UIDispatcher在 UI 线程中发布异步工作。 - 使用
JSDispatcher在 JavaScript 引擎线程中发布异步工作。
属性
JSDispatcher
readonly IReactDispatcher JSDispatcher
获取 JavaScript 引擎线程调度程序。它是 Properties 属性包中 ReactDispatcherHelper.JSDispatcherProperty 的快捷方式。
JSRuntime
readonly Object JSRuntime
获取正在运行的 React 实例的 JavaScript 运行时。如果使用 Web 调试,则可能为空。**注意:请勿直接使用此属性。这是一个实验性属性,将来版本可能会删除或更改。
Notifications
readonly IReactNotificationService Notifications
获取与 ReactInstanceSettings.Notifications 共享的 IReactNotificationService。它可用于在组件和应用程序之间发送通知事件。IReactContext.Notifications 中添加的所有通知订阅在 IReactContext 被销毁后会自动删除。ReactInstanceSettings.Notifications 中添加的通知订阅只要 ReactInstanceSettings 存在就会一直保留。
Properties
readonly IReactPropertyBag Properties
获取与 ReactInstanceSettings.Properties 共享的 IReactPropertyBag。它可用于在组件和应用程序之间共享值和状态。
SettingsSnapshot
readonly IReactSettingsSnapshot SettingsSnapshot
获取用于启动 React 实例的设置快照。
UIDispatcher
readonly IReactDispatcher UIDispatcher
获取 UI 线程调度程序。它是 Properties 属性包中 ReactDispatcherHelper.UIDispatcherProperty 的快捷方式。
方法
CallJSFunction
void CallJSFunction(string moduleName, string methodName, JSValueArgWriter paramsArgWriter)
使用 paramsArgWriter 调用 moduleName 的名为 methodName 的 JavaScript 函数。paramsArgWriter 是一个 JSValueArgWriter 委托,它接收 IJSValueWriter 以序列化方法参数。
DispatchEvent
void DispatchEvent(FrameworkElement view, string eventName, JSValueArgWriter eventDataArgWriter)
已弃用:请改用
XamlUIService.DispatchEvent
已弃用属性。请改用 XamlUIService.DispatchEvent。它将在未来版本中移除。
EmitJSEvent
void EmitJSEvent(string eventEmitterName, string eventName, JSValueArgWriter paramsArgWriter)
使用 paramsArgWriter 为 eventEmitterName 发送 JavaScript 模块事件 eventName。这是一个专门的 CallJSFunction 调用,其中方法名始终是 emit,并且 eventName 会添加到参数中。paramsArgWriter 是一个 JSValueArgWriter 委托,它接收 IJSValueWriter 以序列化事件参数。