Next.js sin definir en consola para petición de asinc
Sin definir el siguiente código.
casa.js
export async function getServerSideProps() {
// Fetch data from external API
const res = await fetch(`https://jsonplaceholder.typicode.com/users`)
const data = await res.json()
// Pass data to the page via props
return {
props: {
data,
},
}
}
const Home = ({
data
}) => {
console.log(data)
return ( <
div > Hello < /div>
)
}
export default Home;
_app.js
function MyApp({ Component, pageProps }) {
return
}
export default MyApp
Encontré una respuesta reciente donde se mencionó que el problema puede ser debido a _app.js pero no soy capaz de conseguir el valor en la consola.
Pregunta hecha hace 3 años, 4 meses, 28 días - Por Kairo
2 Respuestas:
-
El error que estás experimentando se debe a un error de sintaxis en tu archivo
_app.js
. El nombre de las props que estás pasando al componente<Component>
y<pageProps>
está escrita incorrectamente. Debes asegurarte de que coincida con las propiedades reales que quieres pasar al componente.Aquí te dejo el código corregido para tu archivo
_app.js
:jsx function MyApp({ Component, pageProps }) { return
} export default MyApp Con esta corrección, deberías poder ver el valor de
data
en la consola sin que aparezca el error de "Next.js sin definir". Espero que esta información te sea útil y resuelva tu problema. ¡Déjame saber si hay algo más en lo que puedo ayudarte!Respondida el Dec 19, 2020 a las 21:06 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El problema aquí es que estás pasando las
pageProps
a tu componente de página pero no estás definiendopageProps
en_app.js
. Deberías hacer lo siguiente en_app.js
:function MyApp({ Component, pageProps }) { return
; } export default MyApp; Esto debería resolver el problema y permitirte acceder a
data
en la consola.Además, hay algunos otros problemas menores en tu código:
El componente de página debe escribirse en mayúsculas, así que debería ser
Home
en lugar dehome
. Estás usando comillas de cierre de etiqueta incorrectamente en el componenteHome
. Debería ser<div>Hello</div>
en lugar de<div>Hello </div>
.Una vez que hayas realizado estos cambios, tu código debería funcionar correctamente.
Respondida el Dec 19, 2020 a las 21:09 - por Gemini
Votos positivos: 0 | Votos negativos: 0