IReactContext
新架构
类型:接口
IReactContext 对象是指向 React 实例的弱指针。它允许原生模块和视图管理器与应用程序以及其他原生模块和视图管理器进行通信。由于 IReactContext 是指向 React 实例的弱指针,因此在 React 实例卸载后,其某些功能将不可用。当 React 实例在 ReactNativeHost 中重新加载时,之前的 React 实例将被卸载,然后使用新的 IReactContext 创建新的 React 实例。
- 使用
Properties与其他组件共享原生模块的数据。 - 使用
Notifications与其他组件交换事件。 - 使用
CallJSFunction调用 JavaScript 函数,并使用EmitJSEvent引发 JavaScript 事件。 - 使用
UIDispatcher在 UI 线程中发布异步工作。 - 使用
JSDispatcher在 JavaScript 引擎线程中发布异步工作。
属性
CallInvoker
readonly CallInvoker CallInvoker
用于在 JS 运行时上调度工作。应避免大多数直接使用此方法,而应使用 ReactContext.CallInvoker。
JSDispatcher
readonly IReactDispatcher JSDispatcher
已弃用:请改用
IReactContext.CallInvoker
获取 JavaScript 引擎线程调度程序。它是来自 Properties 属性包的 ReactDispatcherHelper.JSDispatcherProperty 的快捷方式。
JSRuntime
readonly Object JSRuntime
获取正在运行的 React 实例的 JavaScript 运行时。如果使用 Web 调试,它可能为 null。**注意:请勿直接使用此属性。这是一个实验性属性,将在未来版本中删除。对于新架构已弃用:请改用 IReactContext.CallInvoker。
LoadingState
readonly LoadingState LoadingState
获取 ReactNative 实例的状态。
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 以序列化方法参数。
EmitJSEvent
void EmitJSEvent(string eventEmitterName, string eventName, JSValueArgWriter paramsArgWriter)
使用 paramsArgWriter 为 eventEmitterName 发送 JavaScript 模块事件 eventName。这是一个特殊的 CallJSFunction 调用,其中方法名称始终为 emit,并且 eventName 会添加到参数中。paramsArgWriter 是一个 [JSValueArgWriter](JSValueArgWriter) 委托,它接收 [IJSValueWriter](IJSValueWriter) 以序列化事件参数。
被引用方
ComponentViewIReactViewInstanceInitializerDelegateInstanceCreatedEventArgsInstanceDestroyedEventArgsInstanceLoadedEventArgsJsiInitializerDelegateReactCoreInjectionReactNativeHostXamlUIService
旧架构
类型:接口
IReactContext 对象是指向 React 实例的弱指针。它允许原生模块和视图管理器与应用程序以及其他原生模块和视图管理器进行通信。由于 IReactContext 是指向 React 实例的弱指针,因此在 React 实例卸载后,其某些功能将不可用。当 React 实例在 ReactNativeHost 中重新加载时,之前的 React 实例将被卸载,然后使用新的 IReactContext 创建新的 React 实例。
- 使用
Properties与其他组件共享原生模块的数据。 - 使用
Notifications与其他组件交换事件。 - 使用
CallJSFunction调用 JavaScript 函数,并使用EmitJSEvent引发 JavaScript 事件。 - 使用
UIDispatcher在 UI 线程中发布异步工作。 - 使用
JSDispatcher在 JavaScript 引擎线程中发布异步工作。
Properties
CallInvoker
readonly CallInvoker CallInvoker
用于在 JS 运行时上调度工作。应避免大多数直接使用此方法,而应使用 ReactContext.CallInvoker。
JSDispatcher
readonly IReactDispatcher JSDispatcher
已弃用:请改用
IReactContext.CallInvoker
获取 JavaScript 引擎线程调度程序。它是来自 Properties 属性包的 ReactDispatcherHelper.JSDispatcherProperty 的快捷方式。
JSRuntime
readonly Object JSRuntime
获取正在运行的 React 实例的 JavaScript 运行时。如果使用 Web 调试,它可能为 null。**注意:请勿直接使用此属性。这是一个实验性属性,将在未来版本中删除。对于新架构已弃用:请改用 IReactContext.CallInvoker。
LoadingState
readonly LoadingState LoadingState
获取 ReactNative 实例的状态。
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](JSValueArgWriter) 委托,它接收 [IJSValueWriter](IJSValueWriter) 以序列化事件参数。