Axios: config.method.toLowerCase не является функцией - PullRequest
0 голосов
/ 22 февраля 2019

Я делаю GET-запрос с Axios в проекте React-Redux и получаю следующую ошибку:

TypeError: "config.method.toLowerCase is not a function"

request     Axios.js:43 
wrap        bind.js:11 
apiCall     api.js:32 
apiCall     api.js:29 
...         ...

api.js - файл из моего собственного проекта.bind.js и Axios.js из библиотеки Axios.Это моя функция API:

export function apiCall(method, path, data){
  let url = backendDomain + path
  let config = {
    method: [method],
    url: [url],
    data : [data],
    headers:{
      "Content-Type":"application/json",
      "Accept":"application/json"
    }
  }
   return new Promise((resolve, reject)=>{
     return axios(config).then(res=> {
      return resolve(res.data)
    }).catch(err => {
      return reject(err.response);
    })
  })

Эта функция использует функцию apiCall ():

export function authUser(url, userData, method){  
  return (dispatch) => {
    return new Promise((resolve, reject)=>{
      return apiCall(method, "/"+`${url}`, userData)
      .then((data) => {
        ...
        resolve();
      })
      .catch(err=>{
        ...
        reject();
      })
    })
  }
}

Как вы думаете, что-то не так с моим кодом или что-то в этом роде?не так с библиотекой?Когда я использую authUser для отправки своего действия (для Redux State), я дважды проверил, что «method» является String, я console.logged метод typeof в api.js, и он вернул строку.

Edit:

Я пытался вызвать toString () для параметра метода, переданного в apiCall (), но он не работал:

  let reMethod = method.toString();
  const config = {
    method: [reMethod],
    url: [url],
    data : [data],
    headers:{
      "Content-Type":"application/json",
      "Accept":"application/json"
    }
  }

1 Ответ

0 голосов
/ 22 февраля 2019

Как упоминалось в моем комментарии, вы предоставляете массив, когда axios ожидает строку:

  const config = {
    method: reMethod,
    url: url,
    data : data,
    headers:{
      "Content-Type":"application/json",
      "Accept":"application/json"
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...