Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
React js, confunde fetch url con otra fetch

En mi componente Inicio, tengo esta función de búsqueda

 export default function Home() { const { rootUrl } = useContext(UserContext); useEffect(() => { fetch(`${rootUrl}/api/products/featuredProducts`) .then((result) => result.json()) .then((result) => { console.log(result); }); }, []); }

Se supone que eso extrae productos de la base de datos que se presentan. Pero cada vez que intento ejecutar esa búsqueda, se confunde con otra búsqueda en mi aplicación, que es la obtención de un solo producto, que es este código:

 export default function ProductView() { const { productId } = useParams(); const { rootUrl } = useContext(UserContext); const { addToCart } = useContext(UserContext); const [productData, setProductData] = useState(""); useEffect(() => { fetch(`${rootUrl}/api/products/${productId}`) .then((result) => result.json()) .then((result) => { setProductData(result); }); }, []);

Recibiré un error en mi API de back-end con este mensaje:

 CastError: Cast to ObjectId failed for value "featuredProducts"

Ese "featuresProducts" es mi punto final para mi primera búsqueda. Parece que algo lo confunde como mi ID de parámetro para mi segunda URL de búsqueda en mi componente ProductView, esta búsqueda a continuación:

 fetch(`${rootUrl}/api/products/${productId}`)

No entiendo por qué sucede esto, ya que mis otras rutas con "api/products/plus other endpoints here" funcionan bien, es solo que mi nueva adición para buscar productos destacados no funcionará

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Definió su ruta como /products/:id , por lo que cada vez que su backend vea una ruta como /products/anything asumirá automáticamente (y correctamente) que anything es id. Puedes combatir esto de varias maneras.

Lo que haría es crear una ruta para buscar con id:

 /products/id/:id

y otro para destacados:

 /products/featured

en su back-end.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda