无法读取undefined的属性'protocol':axios react

时间:2017-12-11 11:46:40

标签: reactjs promise axios

const config = {
                  headers: { "Content-Type": "application/octet-stream"} . 
              }

              let files = this.state.files
              let promises = []
              files.map((item ,index)=>{
                promises.push(axios.put(this.props.deal.authURL[index] , item , config))
            })

我收到此错误 - 未捕获(在承诺中)TypeError:无法读取undefined的属性'protocol' 我的目标是将所有axios调用的结果存储在promises数组中。 然后使用Promise.all()函数立即解决所有问题。无法理解为什么会出现错误。
任何形式的帮助表示赞赏。谢谢

3 个答案:

答案 0 :(得分:4)

this.props.deal.authURL[index]返回了一个未定义的url,这就是随机错误的原因。

答案 1 :(得分:0)

推荐解决方案

如上所述,当我们发送格式错误的请求或错误的方法或正文/标头中的任何错误时,会抛出此错误。
但是,如果您已经检查了所有这些,并且它们都没有问题,并且您仍然收到错误消息,那么您很可能错误地处理了响应。
如何纠正?
console.log(response) 发送的请求总是一个好主意,这样我们就知道如何处理响应。

今天下午我遇到了类似的问题。坐了一会儿,更正了所有的方法/请求链接和类似的东西后,我仍然收到错误,然后我意识到我错误地处理了响应。

因此,始终建议console.log响应。

答案 2 :(得分:-1)

var self = this.state.file; 
const config = {
                  headers: { "Content-Type": "application/octet-stream"} . 
              }

              let files = self.state.files || [];
              let promises = []
              files.map((item ,index)=>{
                promises.push(axios.put(this.props.deal.authURL[index] , item , config))
            });
  

它可能会有所帮助!