This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
useNativeState
一个 React Hook,用于创建可在 JavaScript 和原生 Jetpack Compose 视图之间共享的可观察状态。
useNativeState 返回一个 ObservableState,在原生端映射到 Compose 的 MutableState,因此 Compose 会直接跟踪对 .value 的读取和写入,而无需经过 React 渲染周期。这使你能够在 UI 线程上通过 worklet 同步更新原生视图。
**注意:**使用 React Compiler 时,应避免直接访问和修改
value属性。请改用符合 React Compiler 标准的get和set方法。
安装
If you are installing this in an existing React Native app, make sure to install expo in your project.
用法
**注意:**使用 worklet 需要在项目中安装
react-native-worklets。useNativeState本身无需安装它即可使用,但下方示例中的 UI 线程同步更新依赖 worklet 运行时。
下面的示例会在用户输入时对电话号码进行掩码处理。格式化操作以及对 maskedPhone.value(文本)和 selection.value(光标位置)的写入都会在 UI 线程上同步完成,因此输入值与掩码后的值之间不会出现闪烁。
API
import { useNativeState } from '@expo/ui/jetpack-compose';
Hooks
Creates an observable native state that is automatically cleaned up when the
component unmounts. initialValue is captured once on the first render
ObservableState<T>Types
Observable state shared between JavaScript and native views (Jetpack Compose on Android and SwiftUI on iOS).
Type: SharedObject extended by: