ReactNative - 在 FBSDK 中呈现 userInfo 时使用数组错误呈现一组子项?
Posted
技术标签:
【中文标题】ReactNative - 在 FBSDK 中呈现 userInfo 时使用数组错误呈现一组子项?【英文标题】:ReactNative - render a collection of children using array error when rendering userInfo in FBSDK? 【发布时间】:2021-02-05 12:33:16 【问题描述】:我正在尝试在功能组件中构建 facebook signIN 并面临以下错误: 错误 - 对象作为 React 子对象无效(找到:带有键 data 的对象)。如果您打算渲染一组子项,请改用数组。
以下是代码 sn-p: 从'react'导入反应,片段,useEffect,useState; 导入 SafeAreaView, ScrollView, StatusBar, StyleSheet,Text, TouchableOpacity, View,Image,Button 来自'react-native'; 从 'react-native-fbsdk' 导入 AccessToken, LoginButton ;
const App = () =>
const [loggedIn, setLoggedIn] = useState(false);
const [fbUserInfo, setFbUserInfo] = useState(data: '');
return (
<Fragment>
<StatusBar barStyle="dark-content" />
<SafeAreaView>
<ScrollView contentInsetAdjustmentBehavior="automatic"
style=styles.scrollView>
<View style=styles.body>
<View style=styles.sectionContainer>
<LoginButton
onLoginFinished=(error, result) =>
if (error)
console.log('login has error: ' + result.error);
else if (result.isCancelled)
console.log('login is cancelled.');
else
console.log(result);
AccessToken.getCurrentAccessToken().then((data) =>
//setLoggedIn(true);
setFbUserInfo(data.userID);
console.log("Login", data, data.accessToken.toString());
);
onLogoutFinished=() =>
//setLoggedIn(false);
setFbUserInfo(data:'');
/>
</View>
<View style=styles.buttonContainer>
!loggedIn && (
<Text>You are currently logged out</Text>
)
</View>
(
<View>
<View style=styles.listHeader>
<Text>User Info</Text>
</View>
<View style=styles.detailContainer>
<Text style=styles.title>ID</Text>
<Text style=styles.message>fbUserInfo</Text>
</View>
</View>
)
</View>
</ScrollView>
</SafeAreaView>
</Fragment>
);
;
export default App;
请帮我解决问题,谢谢
【问题讨论】:
【参考方案1】:试试这个
AccessToken.getCurrentAccessToken().then((data) =>
const accessToken = data;
fetch('https://graph.facebook.com/v2.5/me?fields=email,name,friends&access_token=' + accessToken)
.then((response) => response.json())
.then((json) =>
// Some user object has been set up somewhere, build that user here
const userID = json.id;
//setLoggedIn(true);
setFbUserInfo(data: userID);
)
.catch(() =>
reject('ERROR GETTING DATA FROM FACEBOOK')
);
);
【讨论】:
这很有帮助,因为 json 返回 id 和 name 如何将其存储在 setFbUserinfo 中?【参考方案2】:我用这个解决了;
const [fbUserInfo, setFbUserInfo] = useState('');
onLogoutFinished=() =>
setLoggedIn(false);
setFbUserInfo('');
【讨论】:
以上是关于ReactNative - 在 FBSDK 中呈现 userInfo 时使用数组错误呈现一组子项?的主要内容,如果未能解决你的问题,请参考以下文章
Facebook AppLinkData fetchDeferredApplinkData ReactNative
如何找到与我的 react native 版本兼容的 fbsdk 版本?
为 iOS React-Native 项目设置 Fbsdk 框架
React Native FBSDK 无效的密钥哈希。 Keyhash 已添加到 developer.facebook 并且应用程序已上线