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) 以序列化事件参数。
被引用方
ComponentView
IReactViewInstance
InitializerDelegate
InstanceCreatedEventArgs
InstanceDestroyedEventArgs
InstanceLoadedEventArgs
JsiInitializerDelegate
ReactCoreInjection
ReactNativeHost
XamlUIService
旧架构
类型:接口
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) 以序列化事件参数。