Ecco cosa ho incontrato. Da qualche parte in un Reagire funzione di rendering del componente, ho questo:Un errore generato da un componente React, catturato nel blocco catch di una promessa non correlata
{first_name} {last_name}
ho sostituito con questo:
{first_name.toUpperCase()} {last_name.toUpperCase()}
E la mia domanda non poteva più login sto usando Axios di parlare con il. backend. Axios è basato sulla promessa. E dopo ho fatto il cambiamento sopra. A quanto pare ha iniziato a eseguire sia il then
sia il blocco catch
della mia chiamata API login
. Mentre stampo la risposta nel blocco catch
.
function login(data, success, error) {
axios.post('/login',
JSON.stringify(data),
{
baseURL: config.apiUrl,
headers: { 'Content-Type': 'application/json; charset=utf-8' }
})
.then((response) => success(response.data))
.catch((response) => {
console.log(response)
error(response.status)})
}
ottengo il seguente:
TypeError: Cannot read property 'toUpperCase' of undefined
Non c'è assolutamente alcuna relazione tra la componente di cui sopra (si tratta di un componente muto semplice visualizzazione roba da puntelli nella pagina) e il codice API chiamando.
Questa non è la prima volta che ho riscontrato questo problema nella mia app. Qualcuno si è mai imbattuto in qualcosa di simile prima? Capisco che le mie variabili nel componente non sono definite, ed è per questo che l'errore si presenta. La mia domanda è: come si inserisce nel blocco delle promesse da qualche parte all'altro capo dell'app.
Dato che questo è di progettazione, potresti fornire informazioni sul motivo per cui questo è il comportamento desiderato? –
Questo è JavaScript. In base alla progettazione! = Comportamento desiderato.)) –
Perché l'Axios chiama parte dello stack di chiamate del rendering di quel componente?Sto incontrando lo stesso problema di errbody else [qui] (https://github.com/mzabriskie/axios/issues/66) –