useSharedValue¶
Функция useSharedValue
позволяет определять общие значения в ваших компонентах.
Описание¶
1 2 3 4 5 6 7 8 9 10 11 |
|
Типизация
1 2 3 |
|
Аргументы¶
initialValue
¶
Значение, которое вы хотите изначально сохранить в свойстве .value
. Это может быть любое значение JavaScript, например, number
, string
или boolean
, а также структуры данных, такие как array
и object
.
Возвращает¶
Функция useSharedValue
возвращает разделяемое значение с единственным свойством value
, изначально установленным в значение initialValue
.
Доступ к значениям, хранящимся в общих значениях, и их модификация возможны по свойству .value
.
Пример¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
Замечания¶
-
При изменении
sv.value
Reanimated будет обновлять стили и поддерживать синхронизацию общего значения между потоками. Однако это не вызовет типичного React-рендеринга, поскольку общее значение - это обычный JavaScript-объект. -
При изменении значения
sv.value
обновление будет происходить синхронно на потоке UI thread. С другой стороны, на потоке JavaScript обновление происходит асинхронно. Это означает, что при попытке немедленно записать в журналvalue
после изменения будет записано ранее сохраненное значение.1 2 3 4 5 6 7
function App() { const sv = useSharedValue(100); // initially set 100 sv.value += 50; // changing value stored in a shared value console.log(sv.value); // will still log 100 }
-
Не используйте destructuring assignment при работе с общими значениями. Хотя это вполне допустимый JavaScript-код, он приведет к тому, что Reanimated не сможет сохранить реактивность разделяемого значения.
1 2 3 4 5 6 7
function App() { let { value } = sv; // don't do this console.log(value); // you can read the value just fine value += 50; // but this won't update the styles }
Совместимость с платформами¶
Android | iOS | Web |
---|---|---|
✅ | ✅ | ✅ |