From 1e518f1c0fe5ee9ba6c32e55966230bbd4f6851a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Tue, 31 Mar 2026 07:04:04 +0200 Subject: [PATCH] fix(react-native): replace deprecated sync methods with async equivalents in data binding docs --- runtimes/react-native/data-binding.mdx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/runtimes/react-native/data-binding.mdx b/runtimes/react-native/data-binding.mdx index ff94fbf5..5ac25e13 100644 --- a/runtimes/react-native/data-binding.mdx +++ b/runtimes/react-native/data-binding.mdx @@ -36,13 +36,13 @@ import { Demos } from "/snippets/demos.jsx"; const { riveFile } = useRiveFile(require('./my_file.riv')); // Get reference by name - const namedVM = riveFile?.viewModelByName('My View Model'); + const namedVM = await riveFile?.viewModelByNameAsync('My View Model'); - // Get reference by index - const indexVM = riveFile?.viewModelByIndex(0); + // Get all view model names + const vmNames = await riveFile?.getViewModelNamesAsync(); // ['My View Model', ...] // Get reference to the default artboard view model - const defaultVM = riveFile?.defaultArtboardViewModel(); + const defaultVM = await riveFile?.defaultArtboardViewModelAsync(); ``` @@ -75,17 +75,17 @@ import { Demos } from "/snippets/demos.jsx"; const instance = useViewModelInstance(riveFile, { viewModelName: 'Settings', instanceName: 'UserSettings' }); // From a ViewModel object - const viewModel = riveFile?.viewModelByName('My View Model'); + const viewModel = await riveFile?.viewModelByNameAsync('My View Model'); const namedInstance = useViewModelInstance(viewModel, { name: 'My Instance' }); const newInstance = useViewModelInstance(viewModel, { useNew: true }); // With required: true (throws if null, use with Error Boundary) const instance = useViewModelInstance(riveFile, { required: true }); - // With onInit to set initial values synchronously + // With onInit to set initial values const instance = useViewModelInstance(riveFile, { onInit: (vmi) => { - vmi.numberProperty('health')!.value = 100; + vmi.numberProperty('health')?.set(100); }, }); @@ -680,10 +680,10 @@ import { Demos } from "/snippets/demos.jsx"; } = useRiveList('todos', instance); // Add a new todo item - const handleAddItem = () => { - const todoItemViewModel = riveFile?.viewModelByName('TodoItem'); + const handleAddItem = async () => { + const todoItemViewModel = await riveFile?.viewModelByNameAsync('TodoItem'); if (todoItemViewModel) { - const newTodoItem = todoItemViewModel.createInstance(); + const newTodoItem = await todoItemViewModel.createBlankInstanceAsync(); if (newTodoItem) { // Set some initial values newTodoItem.stringProperty('description')?.set('Buy groceries'); @@ -693,10 +693,10 @@ import { Demos } from "/snippets/demos.jsx"; }; // Insert item at specific index - const handleInsertItem = () => { - const todoItemViewModel = riveFile?.viewModelByName('TodoItem'); + const handleInsertItem = async () => { + const todoItemViewModel = await riveFile?.viewModelByNameAsync('TodoItem'); if (todoItemViewModel) { - const newTodoItem = todoItemViewModel.createInstance(); + const newTodoItem = await todoItemViewModel.createBlankInstanceAsync(); if (newTodoItem) { addInstanceAt(newTodoItem, 0); // Insert at beginning }