El proyecto

3/16
Recursos

Nuestro proyecto será Platzi Recetas: una PWA para ver recetas que utiliza la API de TheMealDB.
Solamente usaremos React, generado por Create React App, junto con React Router.

Aportes 18

Preguntas 9

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

nunca me a gustado usar
create-react-app
se me hace muy chafa

Les comparto el repo del curso pero con la adaptacion a hooks y usando componentes funcionales por si gustan usarlo.

Github Repo

El instructor podría haber indicado que debemos descargar el proyecto y no estar adivinando de dónde se deben descargar los recursos.

Estuve viendo el proyecto y parece que la API cambió. Ahora para obtener las últimas recetas debemos tener cuenta de Patreon y donar.

Para que siga funcionando el proyecto hice este cambio, haciendo la petición a otra URL:

// mealdb-api.js

async function getLatest() {
  const request = await fetch(`${baseUrl}/random.php`); // ya no latest.php
  ...
}

Esto me trae una receta aleatoria (pero solo una). Si alguien encuentra una mejor alternativa avisa:

hola si de pronto a algunos les da problemas abrir el proyecto aquí algunas cosas que a mi me funcionaron:

primero instalar el isomorphic-fetch con este comando

npm i isomorphic-fetch 

luego buscar actualizaciones con

npx npm-check-updates -u

instalar las actualizaciones con

npm install 

y para abrirlo no usar npm run start o npm start sino

npm run dev 

ahora si al abrir el proyecto en el navegador no se ven las recetas, deben de ir a mealdb-api.js y cambiar la baseUrl y el request de la funcion getLatest con

const baseUrl = "https://www.themealdb.com/api/json/v1/1"; 
const request = await fetch(`${baseUrl}/search.php?f=b`);

Hola camaradas, me encuentro en el 18 de 04 de2022, y si se encuentran perdidos realicen estas acciones:

const baseUrl = "https://www.themealdb.com/api/json/v2/1";

async function getLatest() {
  const request = await fetch(`${baseUrl}/search.php?f=b`);
  const data    = await request.json()
  const recipes = data.meals.map((m) => normalizeMeal(m))
  return recipes
}

async function getRecipe(recipeId) {
  const request = await fetch(`${baseUrl}/lookup.php?i=${recipeId}`)
  const data    = await request.json()
  if( ! data.meals ) return null
  const recipe  = normalizeMeal(data.meals.shift())

  return recipe
}

Listo, ahora ya pueden mandar el comando: npm run dev

pueden usar este recurso para iniciar su proyecto como PWA 🤗🤗🤗:

https://create-react-app.dev/docs/making-a-progressive-web-app/

Hola, tengo una pregunta, como tal el curso no está orientado a hacer la app desde 0 sino a pasar una app ya creada a una PWA?

pero para el SEO no seria NEXT con PWA porque solo react puro ¿?

como dicen los compañeros ya el API de themealdb cambio así que cambien en mealdb-api.js
la parte del fetch de “/latest.php” a “search.php?f=c”

si desean bastantes recetas con la letra c o la s

Yo descargué esto inicial de la sección de archivos

Alguien sabe qué extensión usa el profesor para que el logo del archivo en VSC sea el logo de react para los archivos react aunque sólo terminen en.js ?

no me queda claro una cosa, ¿el proyecto este de las “recetas” se realiza en algún curso o está hecho exclusivamente para el curso y nos delegan la responsabilidad de conocerlo cual construcción propia? ¿es un proyecto de solo react, react router, hntml y css básico o tiene a su vez código ya enfocado en la realización de una pwa?

Es posible incluir/usar expo en esta PWA ?

Alguien mas tuvo este error al intentar correr el proyecto después de descargarlo?
SyntaxError: Unexpected token < in JSON at position 0

Me da ese error en consola, esta relacionado con el archivo recetas/src/mealdb-api.js

Esto fue después de usar npm install y luego ‘npm run dev’, carga el sitio, pero vació y en consola veo el error que describí arriba

Odio ver como se usaba react antes, con clases y cuando los hooks y redux era inexistente, pero por lo menos no tengo que hacer ese código y solo preocuparme por la PWA ! ( eso espero )

h