Description
use setTheme function change will cause useEffect loop
Steps to reproduce the behaviour:
use setTheme function in useEffect deps array
const colorScheme = useColorScheme();
const {theme, setTheme} = useContext(ThemeContext);
useEffect(() => {
setTheme({
name: colorScheme,
colors: themeColors[colorScheme],
components: themeComponents,
});
}, [colorScheme, setTheme]);
Important Details
I looked at the source, setTheme need useCallback cladding make sure setTheme doesn't change.
like is:
// The value comes from the outside and does not need to be placed in the useEffect deps
const setTheme = useCallback((newTheme: ThemeType) => {
const mergedTheme = deepmerge(defaultTheme, newTheme);
setThemeState(mergedTheme);
},[])
- Version: v1.0.63
- OS: Android
- Browser React native
Description
use setTheme function change will cause useEffect loop
Steps to reproduce the behaviour:
use setTheme function in useEffect deps array
Important Details
I looked at the source, setTheme need useCallback cladding make sure setTheme doesn't change.
like is: