Devolver valor de una función en reaccionar
Sep 17 2020
Cuando intento devolver mi res.data de mi función y luego console.log, obtengo un valor indefinido, pero si consuelo.log desde dentro de la función obtengo el resultado normal
const getDefaultState = () => {
axios
.get("http://localhost:5000/urls/todos")
.then((res) => {
if (res.data) {
console.log(res.data);
return res.data;
}
})
.catch((err) => console.log(err));
};
console.log(getDefaultState());
entonces yo consigo primero
(3) [{…}, {…}, {…}]
(el valor normal) pero luego de afuera obtengo
indefinido
Respuestas
1 Jai Sep 17 2020 at 12:45
También debe devolver la llamada:
const getDefaultState = () => {
return axios.get("http://localhost:5000/urls/todos")
.then((res) => {
if (res.data) {
console.log(res.data);
return res.data;
}
}).catch((err) => console.log(err));
}
eloyra Sep 17 2020 at 12:42
Deberías devolver la promesa en su lugar.
const getDefaultState = () =>
axios
.get("http://localhost:5000/urls/todos")
.then((res) => {
if (res.data) {
console.log(res.data);
return res.data;
}
})
.catch((err) => console.log(err));
De esa forma puede escuchar el resultado fuera de la función:
getDefaultState().then(/* do stuff */);
// or
const res = await getDefaultState();