Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

108
Vistas
open a page with specific id in react

I have three pages here (App.js - Button.js - Template.js)
I want when user clicks on each button in Button.js, Template.js page to open with a specific data from api(Here I have an Artificial api contains with objects each object contains specific info about digital curency)I want when I click on for example bitcoin button template page renders with bitcoin info in it

App.js

import { useState } from "react";
import Button from "./Button";
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";
import Template from "./Template";
const api = [
{ id: 1, name: "bitcoin", abbr: "btc" },
{ id: 2, name: "theter", abbr: "ttr" },
{ id: 3, name: "ethereum", abbr: "eth" },
];

export default function App() {
return (
    <BrowserRouter>
        <Routes>
            <Route path="/template" element={<Template data={api}/>} />
            <Route path="/button" element={<Button data={api}/>} />
        </Routes>
    </BrowserRouter>
 );
 }

Button.js

import React from "react";
import { Link } from "react-router-dom";

export default function Button(props) {
console.log(props.data);
return (
    <div>
        {props.data.map((item) => {
            return (
                <Link to={`/template`}>
                    <button btn-id={item.id}> {item.name}deposit</button>
                </Link>
            );
        })}
    </div>
 );
 }

Template.js

import React from "react";

export default function Template({ data }) {
console.log(data);
return (
    <div>
        {/* name */}
        <h1>Lorem.</h1>
        {/* abbr */}
        <span>hasan</span>
        {/* id */}
        <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore,
            consequatur.
        </p>
    </div>
);
}
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I think you want to use URL params.

https://v5.reactrouter.com/web/example/url-params

https://v5.reactrouter.com/web/api/Hooks/useparams

App.js

import { useState } from "react";
import Button from "./Button";
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";
import Template from "./Template";
const api = [
{ id: 1, name: "bitcoin", abbr: "btc" },
{ id: 2, name: "theter", abbr: "ttr" },
{ id: 3, name: "ethereum", abbr: "eth" },
];

export default function App() {
return (
    <BrowserRouter>
        <Routes>
            <Route path="/template/:id" element={<Template data={api}/>} />
            <Route path="/button" element={<Button data={api}/>} />
        </Routes>
    </BrowserRouter>
 );
 }

Button.js

import React from "react";
import { Link } from "react-router-dom";

export default function Button(props) {
console.log(props.data);
return (
    <div>
        {props.data.map((item) => {
            return (
                <Link to={`/template/${item.id}`}>
                    <button btn-id={item.id}> {item.name}deposit</button>
                </Link>
            );
        })}
    </div>
 );
 }

Template.js

import React from "react";

export default function Template({ data }) {
console.log(data);

const params = useParams();

const _data = data.find(({id}) => id === params.id)

return (
    <div>
        {/* name */}
        <h1>Lorem.</h1>
        {/* abbr */}
        <span>hasan</span>
        {/* id */}
        <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore,
            consequatur.
        </p>
    </div>
);
}
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda