Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用外部URL时未定义React-Map函数_Javascript_Arrays_Json_Reactjs_Axios - Fatal编程技术网

Javascript 使用外部URL时未定义React-Map函数

Javascript 使用外部URL时未定义React-Map函数,javascript,arrays,json,reactjs,axios,Javascript,Arrays,Json,Reactjs,Axios,我得到了一个常见的错误。map不是函数。只有当我使用外部api url时才会发生错误,同时当我在浏览器中打开url并将json数据复制到本地文件并通过ajax调用时,它工作得很好。我认为JSON响应中有一个错误。我想不出来 请检查下面的代码。当我将url1传递给axios时,我得到了错误,而当我将url2传递给axios时,数据可以很好地打印出来 class Products extends React.Component{ constructor(props){ super(pro

我得到了一个常见的错误。map不是函数。只有当我使用外部api url时才会发生错误,同时当我在浏览器中打开url并将json数据复制到本地文件并通过ajax调用时,它工作得很好。我认为JSON响应中有一个错误。我想不出来

请检查下面的代码。当我将url1传递给axios时,我得到了错误,而当我将url2传递给axios时,数据可以很好地打印出来

class Products extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      products: []
    }
  }
  getProducts(){
    const url1="https://anagha.herokuapp.com/anagha-all-products/100";
    const url2 = "https://quarkbackend.com/getfile/sivadass/anagha-products";
    axios.get(url2)
      .then(response => {
        this.setState({
          products : response.data
        }, function(){
          console.log(this.state.products)
        })
      })
  }
  componentWillMount(){
    this.getProducts();
  }
  render(){
    var productsList = this.state.products.map(function(data) {
      return (
        <li>{data.title}</li>
      );
    });
    return(
        <ul>{productsList}</ul>
    );
  }
}

这是正在工作的演示

在收到json响应后,我使用json.parse解析了它,然后错误被清除

const url1="https://anagha.herokuapp.com/anagha-all-products/100";
axios.get(url1)
  .then(response => {
    let parsedData = JSON.parse(response.data);
    this.setState({
      products : parsedData
    }, function(){
      console.log(this.state.products)
    })
  })