передать указанный параметр c в функцию - PullRequest
3 голосов
/ 19 февраля 2020

У меня есть функция:

getBooks(page, count, authorId){
      return API.get('/books/?page=' +page + '&count='+count+ '&author='+ authorId})
        .then(response => {
            return response.data
        })
}

Я реализую функцию поиска, и в поиске я передаю только authorId т.е.

getBooks(akdjh23)

Но на делая это, он устанавливает akdjh23 в page. то есть page=akdjh23, но я хочу authorId=akdjh23

Мой вопрос: как мне отправить только authorId во время поиска и page и count при общем запросе на получение.

Поиск по идентификатору:

getBooks(id)

Получить все книги:

get(1, 40) -> page=1, count=40

Ответы [ 3 ]

2 голосов
/ 19 февраля 2020

Вы можете передать объект, а не фиксированные параметры, и деструктурировать его, используя ES6 Object destructuring

Пример.

getBooks({ page, count, authorId }){
  return API.get('/books/?page=' +page + '&count='+count+ '&author='+ authorId})
    .then(response => {
        return response.data
    })
}

getBooks({ authorId: 45});
getBooks({ page: 'abc', authorId: 67});
1 голос
/ 19 февраля 2020
getBooks(null, null, id)

должен добиться цели. Обратите внимание, что ваш код не будет работать как страница, и количество в вашей функции не будет определено.

0 голосов
/ 19 февраля 2020

Вместо нескольких аргументов вы можете изменить работу getBooks и передать объект вместо

getBooks({ page, count, authorId })

Теперь вы можете просто передать authorId, если вам нужно

getBooks({ authorId: 'authorIdPassed' });
...