React - 使用外部 URL 时未定义地图功能

Posted

技术标签:

【中文标题】React - 使用外部 URL 时未定义地图功能【英文标题】:React - Map function is not defined when using an external URL 【发布时间】:2018-01-05 21:30:23 【问题描述】:

我收到常见错误 .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>
    );
  

这里是 link 工作演示

【问题讨论】:

【参考方案1】:

收到 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)
    )
  )

【讨论】:

以上是关于React - 使用外部 URL 时未定义地图功能的主要内容,如果未能解决你的问题,请参考以下文章

获取 RSS 提要时未定义

使用react Context(Ionic-React)时未定义history.push()[重复]

使用 React.lazy 时未捕获的未定义错误

尝试使用外部库时未定义的引用

WebAssembly 编译器错误:使用外部库编译时未定义符号

加载 React 组件时未定义 gapi