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.valueReanimated будет обновлять стили и поддерживать синхронизацию общего значения между потоками. Однако это не вызовет типичного 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 |
|---|---|---|
| ✅ | ✅ | ✅ |