Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react本机应用程序中实现暗模式_Javascript_React Native_Stack Navigator_Ios Darkmode_Android Darkmode - Fatal编程技术网

Javascript 如何在react本机应用程序中实现暗模式

Javascript 如何在react本机应用程序中实现暗模式,javascript,react-native,stack-navigator,ios-darkmode,android-darkmode,Javascript,React Native,Stack Navigator,Ios Darkmode,Android Darkmode,我想在我的应用程序中添加暗模式。但这些文件令人困惑。有没有简单的方法来理解如何实现黑暗模式。我还希望darkmode在我的所有应用程序屏幕中保持活动状态。并且需要在ios和android中实现该模式。我使用stacknavigator在多个屏幕中导航。我曾经尝试过一个世博会项目,但没有取得令人满意的结果。任何帮助都很好,谢谢。(我的西班牙语不太好) 我将黑暗模式添加到我的应用程序中。我使用react导航、样式化组件、样式化主题和react中的API上下文:) 我的实施: 在App.js文件中 s

我想在我的应用程序中添加暗模式。但这些文件令人困惑。有没有简单的方法来理解如何实现黑暗模式。我还希望darkmode在我的所有应用程序屏幕中保持活动状态。并且需要在ios和android中实现该模式。我使用stacknavigator在多个屏幕中导航。我曾经尝试过一个世博会项目,但没有取得令人满意的结果。任何帮助都很好,谢谢。

(我的西班牙语不太好)

我将黑暗模式添加到我的应用程序中。我使用react导航、样式化组件、样式化主题和react中的API上下文:)

我的实施:

在App.js文件中

state = {
   //Dark Mode
      darkMode: false,
      switchDarkMode: () => {
        const darkMode = new Boolean(!this.state.darkMode)
              this.setState({ darkMode: !this.state.darkMode },
                () => AsyncStorage.setItem('darkMode', darkMode.toString()))            
      },
}

 <ThemeProvider theme={{ mode: darkMode ? 'dark' : 'light' }}>          
        <AppContainer
          ref={navigatorRef => NavigationService.setTopLevelNavigator(navigatorRef)}
          uriPrefix={prefix}
          onNavigationStateChange={(prevState, currentState) => {
            const currentScreen = this.getActiveRouteName(currentState)
            const prevScreen = this.getActiveRouteName(prevState)

            return prevScreen !== currentScreen && Analytics.setCurrentScreen(currentScreen)
          }}
        />
      </ThemeProvider>
。 .


如果您有问题,请添加您的反馈:)

使用React导航主题内置插件。如果您使用Expo,在iOS 13+上,您可以添加以检测首选配色方案

const Navigation = createAppContainer(RootStack);
export default () => <Navigation theme="light" />;
const-Navigation=createAppContainer(RootStack);
导出默认值()=>;
检查文档

import {Platform, Dimensions } from 'react-native';
import styled from 'styled-components/native';
import theme from 'styled-theming';
import { isTablet } from 'react-native-device-detection';

//Get dimensions device
const {width, height} = Dimensions.get('window')

//Start Manage Theme
const HeaderBackgroundColor = theme('mode', {
    light: Platform.OS === 'ios' ? '#FFFFFF' : '#FAFAFA',
    dark: '#1f1f1f'
})

const DrawerBackgroundColor = theme('mode', {
    light: '#EDF2F4',
    dark: '#1f1f1f'
})

const BackgroundColor = theme('mode', {
    light: '#FFFFFF',
    dark: '#1f1f1f'
})

const SemiDarkBackground = theme('mode', {
    light: '#EDF2F4',
    dark: '#333333'
})

const TextColor = theme('mode', {
    light: '#333333',
    dark: '#FFFFFF'
})

const Header = styled.SafeAreaView`
    flex: 1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-horizontal: 15;
    background-color: ${HeaderBackgroundColor};
`
const MainContainer = styled.View`
    flex: 1;
    background-color: ${BackgroundColor};
`
const MenuContainer = styled.View`
    flex: 1;
    background-color: ${SemiDarkBackground};
`
const Navigation = createAppContainer(RootStack);
export default () => <Navigation theme="light" />;