(stackoverflow上的其他类似问题没有解决我的问题)。
当我尝试调用
authorize
(react-native-app-auth 库中的函数)时,我收到此错误:“TypeError:无法读取未定义的属性(读取“授权”)”。
这是一个最小的可重现示例:
import React, { useState } from "react";
import { Text, View, Button, Linking } from "react-native";
import { authorize } from 'react-native-app-auth';
export default function App() {
const config = {
issuer: 'https://accounts.google.com',
clientId: 'GOOGLE_OAUTH_APP_GUID.apps.googleusercontent.com',
redirectUrl: 'com.googleusercontent.apps.GOOGLE_OAUTH_APP_GUID:/oauth2redirect/google',
scopes: ['openid', 'profile', 'email'],
};
const handleLogin = async () => {
try {
console.log(authorize); // line 1; this line shows a function present
const result = await authorize(config); // line 2
console.log('Authorization Response', result);
} catch (error) {
console.error('Hey! Theres an authorization error', error);
}
};
return (
<View>
<Button
title={"google"}
onPress={() => handleLogin()}
key={"google"}
/>
</View>
);
}
这是我尝试过并发现的:
我已经完成了
npm install react-native-app-auth
。我使用 npm run web
运行了反应应用程序。该错误来自于在 authorize
函数内标记为“第 2 行”的行中调用 handleLogin
。
我已经在“第 1 行”上完成了 console.log,看看那里是否存在某些功能,并且确实存在;
f authorize(_ref4) {
var issuer = _ref4.issuer,
redirectUrl = _ref4.redirectUrl,
clientId = _ref4.clientId,
clientSecret = _ref4.clientSecret,
scopes = _ref4.scopes,
_ref4$useNonc…
那么为什么说
authorize
未定义?
在
clientSecret
内部添加 config
也不能解决问题。我已经尝试了所有我能想到的修复方法,所以我不知道出了什么问题。如果有任何帮助,我将不胜感激。
这是我的软件包的版本:
"react": "18.2.0",
"react-native": "^0.72.6",
"react-native-app-auth": "^7.1.0",
"react-native-web": "~0.19.6",
如果还有任何我没有提到的对此有帮助的信息,我很乐意提供。谢谢!
对于我来说,
我也遇到了这个问题。我通过再次编译应用程序解决了这个问题。
此评论帮助我解决了问题 https://github.com/FormidableLabs/react-native-app-auth/issues/87#issuecomment-511672939
他的错误总是与错误配置有关。确保您已按照设置说明进行操作,链接了react-native,并使用react-native run-ios或react-native run-android重建了您的应用程序。
我关注的内容:
react-native-app-auth
。yarn android
指的是package.json中的react-native run-android