【问题标题】: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>
    )
  }
}

【问题讨论】:

    标签: android node.js react-native


    【解决方案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);”
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多