异步函数未列出任何内容

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);”

以上是关于异步函数未列出任何内容的主要内容,如果未能解决你的问题,请参考以下文章

存储资源管理器未列出 Cosmos DB 文档

PHP 在脚本中列出所有包/过程/功能及其内容主体

dumpbin 命令未在 dll 中列出函数名称

无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)

如果未找到任何内容,Object.get() 将引发异常 [重复]

使用 UITableView 列出内容