首页 > 解决方案 > 无法使用自定义主题覆盖默认的 Amplify withAuthenticator 样式

问题描述

我正在尝试在我的 React Native 应用程序中自定义 AWS WithAuthenticator HOC 的样式。我一步一步地遵循了 Amplify文档。但是,应用程序会继续呈现默认样式(橙色按钮),而不是预期的自定义颜色。

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import Amplify from '@aws-amplify/core';
import config from './aws-exports';
import { withAuthenticator } from 'aws-amplify-react-native';
import { AmplifyTheme } from 'aws-amplify-react-native';

// custom colors for components 
const Mybutton = Object.assign({}, AmplifyTheme.button, { backgroundColor: '#000', });
//console.log('My own design: ', Mybutton)
const MyTheme = Object.assign({}, AmplifyTheme, { button: Mybutton });


class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>You are now signed in!</Text>
      </View>
    );
  }
}

export default withAuthenticator(App, { includeGreetings: true }, false, [], null, MyTheme)

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

谁能指出我做错了什么?

标签: react-nativeaws-amplify

解决方案


您需要像这样传递 withAuthenticator 调用:

export default withAuthenticator(App, {includeGreetings: true, theme: MyTheme});

然后它将起作用。


推荐阅读