This is a demo on how to change theme on runtime and save it in async-storage
Yes, not tested yet:)
import React from "react"; import AsyncStorage from '@react-native-async-storage/async-storage'; import { UnistylesRuntime } from 'react-native-unistyles'; export default function DarkMode(){ const [darkMode, setDarkMode] = React.useState(false); // check theme on each state change React.useEffect(() => { themeCheck(); }, [darkMode]); // check theme on mount React.useEffect(() => { themeCheck(); }, []); // check and reset theme const themeCheck = () => { if (AsyncStorage.getItem('darkMode') === "dark") { UnistylesRuntime.setTheme('dark'); setDarkMode(true); } else { UnistylesRuntime.setTheme('light'); setDarkMode(true); } } // called when theme button is pressed const toggleTheme = () => { const theme = AsyncStorage.getItem("darkMode"); if (theme) { AsyncStorage.setItem("darkMode", theme === "dark" ? "light" : "dark"); } else { AsyncStorage.setItem("darkMode", "dark"); } setDarkMode(!darkMode); }; return( <View onClick={toggleTheme} style={{flex:1}}> <Text>{darkMode? 'Change to light mode' : 'Change to dark mode' }</Text> </View> ) }