我试图用react-native-elements ThemeProvider包装我的基于RNN v2的应用程序。如果包裹在单个组件中,ThemeProvider可以很好地使用相同的主题,但是如果使用Navigation注册则不能,我做错了什么?
const theme = {
colors: {
primary: 'pink'
}
};
// Register screens
Screens.forEach((ScreenComponent, key) =>
// Navigation.registerComponent(key, () => ScreenComponent, Provider)
Navigation.registerComponent(
key,
() => ScreenComponent,
() => <ThemeProvider theme={theme}>{ScreenComponent}</ThemeProvider>
)
);
我也试过这种方式..
import { Platform } from 'react-native';
import { colors, ThemeProvider } from 'react-native-elements';
import React from 'react';
const theme = {
colors: {
primary: 'pink'
}
};
const Provider = ({ children }) => <ThemeProvider theme={theme}>{children}</ThemeProvider>;
export default Provider;
App.js
Screens.forEach((ScreenComponent, key) =>
Navigation.registerComponent(key, () => ScreenComponent, Provider)
您可以使用提供程序包装组件,如下所示
Navigation.registerComponent(key, () => (props) =>
<Provider>
<ScreenComponent {...props} />
</Provider>,
() => ScreenComponent);