异步函数未列出任何内容
Posted
技术标签:
【中文标题】异步函数未列出任何内容【英文标题】:async function not listing anything 【发布时间】:2021-06-07 08:22:49 【问题描述】:我需要在此页面中列出一些用户,但它不起作用
导出默认类 Dermatologistas 扩展组件 状态 = 错误消息:空, 用户:[]
getUserList = async () =>
console.log('ok1')
这里控制台日志正常
try
const response = await api.get('/projects/list');
但是这里什么都没有发生
const users = response.data
console.log(response.data)
console.log('ok')
this.setState( users );
catch (response)
this.setState( errorMessage: response.data.error );
;
你可以看到我在这里调用我的函数
componentDidMount()
this.getUserList()
render()
const users = this.state.users
console.log(users)
return(
<View >
this.state.errorMessage && <Text> this.state.errorMessage </Text>
this.state.users.filter(user => user.speciality === 'Dermatologista').map(user => (
<View key=user._id style=marginTop: 15, alignItems: 'center'>
<Text style=fontWeight: 'bold', fontSize:20>user.title</Text>
<Text>user.speciality</Text>
<Button title = 'View Profile'onPress =() =>
this.props.navigation.navigate('Profile')/>
</View>
))
</View>
)
【问题讨论】:
【参考方案1】:试试useEffect()和useState()
componentDidMount、componentDidUpdate等的使用已经过时了。
你现在可以试试这个
import React,useState, useEffect from 'react';
const YourComponent = () =>
const [users, setUsers] = useState([]);
useEffect(() =>
console.log('ok1')
api.get('/projects/list').then((response) =>
setUsers(response.data);
console.log(response.data);
console.log('ok');
);
, []);
return(
<YourJsxComponents />
);
;
OBS:默认useEffect已经是一个异步函数
【讨论】:
然后显示错误,以便我知道如何帮助提供更多详细信息 它只是不显示任何内容,它不会提醒错误或类似的东西。非常感谢您的帮助,我也不知道错误是什么,但它没有解决 如果您的 api 通过 GET 返回正确的值,您到了吗?或者如果您有正确的身份验证密钥 是的,API 正在工作,令牌也在工作; ) 你能只显示“console.log(response)”吗?或“console.log(response.data);”以上是关于异步函数未列出任何内容的主要内容,如果未能解决你的问题,请参考以下文章
无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)