gpt4 book ai didi

react-native - react native 纸主题与 react 导航不起作用

转载 作者:行者123 更新时间:2023-12-05 02:59:09 28 4
gpt4 key购买 nike

我是 react-native 的新手。我正在使用 React Native Paper 为所有屏幕提供主题。我也在使用 react 导航堆栈导航器和抽屉导航器。首先,对于导航,论文主题在导航组件中不起作用。但是如果我不使用 react-navigation 那么它就可以工作。

所以我尝试通过“withTheme”将主题从一个组件传递到另一个组件。但是 withTheme 没有给我我的自定义主题 Prop 。

这是我的 App.js

import { DefaultTheme,Provider as PaperProvider, Drawer, Avatar, withTheme } from 'react-native-paper';
import { createAppContainer,createSwitchNavigator } from 'react-navigation';
import { createDrawerNavigator } from 'react-navigation-drawer'

const theme = {
...DefaultTheme,
roundness: 8,
colors: {
...DefaultTheme.colors,
primary: '#ff0000',
accent: '#000000',
text: "#cc1111",
background: "#000000",
contained: '#000000'
},
dark: true
};

class App extends Component {

render(){
return(
<PaperProvider theme={theme}>
<switchNavigator />
</PaperProvider>
)
}
};

const switchNavigator = createSwitchNavigator({
Login: Login,
dranav: drawyerNavigator
},
{
initialRouteName: "Login",

})
export default createAppContainer(switchNavigator);

这是我的 login.js

class Login extends Component{
state = {
emailtext: '',
passwordtext: ''
};
componentDidMount() {
SplashScreen.hide();
}
render(){
const {navigate} = this.props.navigation;
const { colors } = this.props.theme;
console.log({colors.accent})
}

}
export default withTheme(Login)

在我的 Login.js 中,我期望“colors.accent”为我的自定义主题提供一个值,如这个值 -- “#000000”。但它给了我 = "#03DAC4",这是默认的重音颜色,而不是我的自定义颜色。

我使用的是 react-native 版本 0.61。请建议我做错了什么。也有更好的方法来传递带有导航的 react-native paper 主题。我想要一个适用于所有屏幕的全局主题

谢谢

最佳答案

您在组件 App 中包装了 switch navigator,但没有在任何地方使用它。您需要包装并导出容器:

const Navigation = createAppContainer(switchNavigator);

export default function App() {
return(
<PaperProvider theme={theme}>
<Navigation />
</PaperProvider>
)
}

关于react-native - react native 纸主题与 react 导航不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270843/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com