Я пытаюсь добавить аутентификацию в приложение React Native с помощью React Native Navigation & AWS.Я использую AWS Amplify для подключения к AWS и Amazon Cognito для управления пользователями.
Когда я запускаю приложение, я получаю следующее сообщение:
AuthClass - Не удается получить текущийпользователь, потому что пользовательский пул отсутствует.Убедитесь, что модуль Auth настроен с допустимой ошибкой идентификатора пула пользователей Cognito: не аутентифицирован
Я пытаюсь придерживаться этого урока: https://medium.com/react-native-training/react-native-navigation-v2-by-wix-getting-started-7d647e944132 (часть 1)
https://medium.com/@dabit3/user-authorization-with-react-native-aws-using-react-native-navigation-v2-by-wix-220ecb536b56 (часть 2)
https://github.com/dabit3/react-native-navigation-v2 (окончательный код урока, которому я следую)
Вот мое приложение .js
import React from 'react'
import Initializing from './src/Components/Initializing'
import Amplify from 'aws-amplify';
import aws_exports from './aws-exports';
//import { withAuthenticator } from '../node_modules/aws-amplify-react';
Amplify.configure(aws_exports);
export default class App extends React.Component {
render() {
return (
<Initializing/>
)
}
}
Я пытался следовать приведенному здесь предложению: https://stackoverflow.com/a/54360805/9623806
Обратите внимание, что я не импортировал компоненты aws-усиление-реагировать, так как я не импортируюиметь модуль "aws-усиление-реагировать", только "aws-усиление" или "aws-усиление-реагировать-нативный"
Вот Initializing.js
import React from 'react'
import {
View,
Text,
StyleSheet,
AsyncStorage
} from 'react-native'
import { goToAuth, goHome } from '../Navigation/Navigation'
import { Auth } from 'aws-amplify'
export default class Initializing extends React.Component {
async componentDidMount() {
try {
const user = await Auth.currentAuthenticatedUser()
console.log('user: ', user)
if (user) {
goHome()
} else {
goToAuth()
}
} catch (err) {
console.log('error: ', err)
goToAuth()
}
}
Когда я запускаю приложение, страница отображается правильно, но я получаю это сообщение об ошибке во всплывающем окне:
[Отклонение необработанного обещания: TypeError: undefined не является объектом (оценивая это.nativeCommandsModule.setRoot ')] - node_modules \ реагировать-нативно-навигация \ lib \ dist \ adapters \ NativeCommandsSender.js: 9: 41 в setRoot - node_modules \ реагировать-нативно-навигацияn \ lib \ dist \ commands \ Commands.js: 27: 57 в setRoot * src \ Navigation \ Navigation.js: 3: 49 в goToAuth * src \ Components \ Initializing.js: 25: 6 в componentDidMount $
Не знаю, связано ли это с тем, что отсутствует пул пользователей.
Вот мой Navigation.js
import { Navigation } from 'react-native-navigation'
export const goToAuth = () => Navigation.setRoot({
root: {
bottomTabs: {
id: 'BottomTabsId',
children: [
{
component: {
name: 'LoginScreen',
options: {
bottomTab: {
fontSize: 12,
text: 'Sign In'
}
}
},
},
{
component: {
name: 'SignUpScreen',
options: {
bottomTab: {
text: 'Sign Up',
fontSize: 12
}
}
},
},
],
}
}
})
export const goHome = () => Navigation.setRoot({
root: {
stack: {
id: 'App',
children: [
{
component: {
name: 'Search',
}
}
],
}
}
})
Спасибо за потраченное время!
Поскольку это мое первое собственное приложение, я мог забыть о некоторых полезных файлах, поэтому дайте мне знать, если мне нужно отредактировать свой вопрос.