He estado tratando de llamar al enlace del perfil usando una identificación de variable de estado, para navegar al perfil de un usuario específico, el método a continuación no funciona, pero si puedo poner el valor 'id' en la URL mientras intento hacer a continuación funcionará porque en App.js:
<Route path="/user/:id" component={Profile} />Y necesito que se pueda hacer clic en el enlace a continuación en la página de inicio para llevar a un usuario registrado a su perfil obteniendo su identificación del servidor y guardándola en una variable de estado y luego analizando el valor en la URL dinámicamente. Inicio.js:
constructor(props) { super(props); id: localStorage.getItem("id"); } componentDidMount() { const payload = { "username": localStorage.getItem("username") }; fetch(ID_FROM_USERNAME_URL, { method: 'POST', headers: { "Authorization": localStorage.getItem("token"), "Accept": "application/json", "Content-Type": "application/json" }, body: JSON.stringify(payload) }) .then(response => response.json()) .then((data) => { console.log("id from server:") console.log(data); localStorage.setItem("id", data); }); } In render() return () <Button color= "link"><Link to="/user/${this.state.id}">Profile</Link></Button>`¿Cómo puedo analizar el valor de la variable de estado en este elemento de enlace?
Gracias
está utilizando la plantilla literal de forma incorrecta ... debe pasarse como variable y en acentos graves
<Link to={`/user/${this.state.id}`}>Profile</Link></Button>
Debe usar la plantilla literal, es una buena característica agregada en ES6.
<Link to={`/user/${this.state.id}`}>Profile</Link></Button>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
Además, parece que su código está roto, no tiene state ni setState y no es aconsejable usar el almacenamiento para esta tarea.