强制withAuthenticator(App)等待加载其他App组件

时间:2019-07-16 10:57:04

标签: react-native amazon-cognito aws-amplify

我是AWS Amplify的新手,只是想不通如何让我的 App类等待用户登录,然后再加载所有其他导航组件,然后使身份验证组件也消失。我正在使用withAuthenticator函数导出我的应用。最好的方法是什么? Tkx!

试图找到登录后操作的示例,但没有成功。

class App extends Component {

    constructor(props) {
        super(props);
    }

    render() {
        return (
                <Navigator />
        );
    }
}

export default withAuthenticator(App);

导航组件已加载到“登录”屏幕上。用户登录后,登录屏幕不会消失,并与其他组件重叠。

1 个答案:

答案 0 :(得分:0)

我想我想出了最好的方法是使用Authenticator而不是withAuthenticator:

class AppWithAuth extends Component {
    state = {
    authState: ''
 };

render() {
    return (
      <View style = { styles.container }>  
      <Authenticator
         amplifyConfig = {awsconf}
         onStateChange = {authState => this.setState({ authState })}
      >

      {this.state.authState === 'signedIn' && <App />}
     </View>
...
}

class App extends Component {

   render() {
   return (
     <View style = { styles.container }>
      <Navigator />
     </View>
    );
 }
}