Reactjs 使用native base动态更改主题
我正在尝试在应用程序中实现黑暗主题。我目前被告知使用本机base来实现这一点。我可以成功切换主题,但这需要我重新加载应用程序才能产生任何影响 我关于主题改变的逻辑也是在应用程序层面Reactjs 使用native base动态更改主题,reactjs,react-native,redux,themes,native-base,Reactjs,React Native,Redux,Themes,Native Base,我正在尝试在应用程序中实现黑暗主题。我目前被告知使用本机base来实现这一点。我可以成功切换主题,但这需要我重新加载应用程序才能产生任何影响 我关于主题改变的逻辑也是在应用程序层面 在重新渲染时,主题在模块级状态下更改,如下所示 console.log(`darkTheme enabled? ${isDarkThemeEnabled}`); if (isDarkThemeEnabled && this.state.theme === 'light') {
在重新渲染时,主题在模块级状态下更改,如下所示
console.log(`darkTheme enabled? ${isDarkThemeEnabled}`);
if (isDarkThemeEnabled && this.state.theme === 'light') {
this.setState(() => ({
theme: 'dark',
}));
} else if (!isDarkThemeEnabled && this.state.theme === 'dark') {
this.setState(() => ({
theme: 'light',
}));
}
};
我知道这不是理想的逻辑,但根据我在app.js render方法中放置的控制台日志,它正在重新渲染,并且在样式提供程序中打开了主题切换。应用程序中的其余组件成功实现了本机基础,它们使用当前主题,但仅在应用程序刷新后切换。我还确保它们都在状态更改时重新渲染,但主题保持不变
更新:某些组件会动态更改,但不是全部。有什么原因吗?这似乎是随机的,我的一些视图标记正在更改,但不是全部,甚至不是全部在同一组件中
编辑:我正在使用redux,我的所有组件都在状态更改时重新渲染,但奇怪的是,只有一些主题正在更改,我最终是如何修复它的(有点):
运行npm i--保存git+
必须这样做,因为主题的npm版本没有clearThemeCache()
在我的app.js中
增加
从“本机基本主题”导入{clearThemeCache}代码>
和clearThemeCache()代码>到正在更新暗主题更改组件状态的方法
从这里开始,我必须在黑暗主题切换上重新渲染整个应用程序中的每个组件,因为一些nativebase组件在黑暗主题更改时没有重新渲染看起来你需要重新渲染。它成功了。但是,GeekyAnts主题看起来像一个ShouteUI主题。它是如何与本机基础一起工作的?谢谢