Ich habe eine Funktion:

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

Ich implementiere eine Suchfunktion und übergebe bei der Suche nur das authorId, d.h.

getBooks(akdjh23)

Dabei wird akdjh23 auf page gesetzt. das heißt page=akdjh23, aber ich möchte authorId=akdjh23

Meine Frage ist, wie ich während der Suche nur authorId und auf allgemeine Anfrage page und count sende.

Suche basierend auf ID:

getBooks(id)

Holen Sie sich alle Bücher:

get(1, 40) -> page=1, count=40
3
user12140833 19 Feb. 2020 im 17:27

3 Antworten

Beste Antwort
getBooks(null, null, id)

Sollte den Trick machen. Beachten Sie, dass Ihr Code nicht als Seite funktioniert und die Anzahl in Ihrer Funktion nicht definiert wird.

1
Mahatmasamatman 19 Feb. 2020 im 14:30

Anstelle mehrerer Argumente können Sie die Funktionsweise von getBooks ändern und stattdessen ein Objekt übergeben

getBooks({ page, count, authorId })

Sie können jetzt bei Bedarf einfach die authorId übergeben

getBooks({ authorId: 'authorIdPassed' });
0
Gene Sy 19 Feb. 2020 im 14:31

Sie könnten einem Objekt die festen Parameter übergeben und es mit ES6 Object destructuring zerstören.

Beispiel.

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});
2
Sohail 19 Feb. 2020 im 14:32