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
以序列化事件参数。