在React-native中导入api

问题描述 投票:0回答:3

enter image description here

这是代码请帮我解决这个问题,附在这个问题上的图片显示错误,谢谢

import React, {Component} from 'react';
import { View, Text } from 'react-native';
import axios from 'axios';

class AlbumList extends Component {
  state= {albums: [] };

  componentWillMount() {
    axios.get('https://rallycoding.herokuapp.com/api/music_albums')
    .then(response => this.setState({albums: response.data }));
}
renderAlbums(){
  return this.state.albums.map(album => <Text>{album.title}</Text>);
}

  render() {
    console.log(this.state);
  return(
    <View>
    {this.renderAlbums()}
    </View>
  );
}
}

export default AlbumList;
reactjs react-native react-redux
3个回答
0
投票

您的设备存在网络问题,请检查手机的状态栏,您可以在自己提供的屏幕截图中看到它

查看您的WIFI图标,它有一个十字架,很可能是黄色框中网络错误的根本问题。

enter image description here

如果您将代码放在try-catch中,那么您将有更好的时间,以便您可以检查错误。

componentWillMount() {


        axios.get('https://rallycoding.herokuapp.com/api/music_albums')
        .then(response => this.setState({albums: response.data }))
        .catch(error => console.log(error))
    }

0
投票

您的错误显示消息说运行axios.get时出现网络错误,因为您没有捕获它无法处理错误。尝试添加一个catch并找出您的网络请求有什么问题。

对于前:

axios.get('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => this.setState({albums: response.data }))
.catch(error => console.log(error));

0
投票

试试这个吧。肯定有效。

import React, {Component} from 'react';
import { View, Text } from 'react-native';
import axios from 'axios';

class AlbumList extends Component {
  state= {albums: [] };

  componentWillMount() {
       axios   .get("https://rallycoding.herokuapp.com/api/music_albums")
      .catch(error => {
        console.log(error);
      })
      .then(response => {
        //console.log(response);
        this.setState({ albums: response.data });
      });
}

  render() {
  return(
    <View>
        {this.state.albums.map((album, key) => {
          return <Text key={key}>{album.title}</Text>;
        })}
    </View>
  );
}
}

export default AlbumList;
© www.soinside.com 2019 - 2024. All rights reserved.