有人可以帮我解决这个问题吗
getFriendList () {
let friends = null;
FB.api('/me/taggable_friends',{
fields: 'id,name,picture',
limit: 10,
access_token: this.state.fbResponse.authResponse.accessToken
}, (response) => {
friends = response.data.map(friend => {
return(
<Friend key={friend.id} />
);
});
});
return friends;
};
它没有返回好友列表。始终返回null。请帮忙。
我获得了10个数据。当我做console.log时,正在打印。
提前致谢...
答案 0 :(得分:4)
FB.api
是异步的,这就是为什么你得到null
的原因。
你不能在你的州保存friends
吗?
getFriendList () {
FB.api('/me/taggable_friends',{
fields: 'id,name,picture',
limit: 10,
access_token: this.state.fbResponse.authResponse.accessToken
}, (response) => this.setState({ friends }))
}
我猜你在componentDidMount
上调用这个方法:
componentDidMount() {
this.getFriendsList()
}
然后在完成时呈现好友列表:
render() {
return(
<div>
{this.state.friends && this.state.friends.map(friend =>
<Friend key={friend.id} />
)}
</div>
)
}