es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo analizar los textos de enlaces a HTML en React

Hola, tengo los siguientes datos devueltos de un servicio API como identificadores de redes sociales. Utilizo console.log para mostrar los datos devueltos y obtengo lo siguiente.

0: {type: ‘facebook’, handle: ‘www.facebook.com/username’}
1: {type: ‘twitter’, handle: ‘www.twitter.com/username’}
length: 2
Necesito que se represente en la página web como un enlace HTML normal con los íconos de las redes sociales mostrándose de la siguiente manera:

He intentado lo siguiente:

const socialMediaLinks = socialMediaHandles.map(handle => <a href='${handle.handle}'>
<i className='bi-bi-${handle.type}'></i></a>
)

Luego, voy a donde quiero que se muestre en el componente y pego el siguiente código:

{socialMediaLinks}

Pero cuando hago eso, el texto se muestra como texto y no se renderiza como HTML en la página.

Estoy utilizando componentes funcionales de React.

En realidad, soy nuevo en React y estoy tratando de averiguar cómo lograr esto. Agradecería cualquier guía.

Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para mostrar enlaces de redes sociales con iconos utilizando componentes funcionales de React

    Para mostrar los nombres de usuario de las redes sociales devueltos por un servicio de API como enlaces con iconos en una página web utilizando componentes funcionales de React, se pueden seguir los siguientes pasos:

    1. Importar las bibliotecas de iconos necesarias o los archivos de imagen de iconos incluyéndolos en la carpeta public del proyecto de React.
    2. Definir los nombres de usuario de las redes sociales recibidos del servicio de API como un arreglo de objetos que contengan dos propiedades: type y handle.

    3. Crear una función para recorrer este arreglo de nombres de usuario de las redes sociales utilizando el método map() y devolver el JSX correspondiente para mostrarlos en la página web.

    import React from "react";
    
    function SocialMediaLinks({ socialMediaHandles }) {
      const icons = {
        facebook: "bi bi-facebook",
        twitter: "bi bi-twitter",
        linkedin: "bi bi-linkedin",
        // agregar más clases de iconos para cada tipo de red social
      };
    
      return (
        <div>
          {socialMediaHandles.map((handle) => (
            <a href="{handle.handle}" target="_blank" key="{handle.type}">
              <i classname="{icons[handle.type]}"></i>
            </a>
          ))}
        </div>
      );
    }
    
    export default SocialMediaLinks;
    
    1. Se recorre el arreglo socialMediaHandles utilizando el método map() que devuelve un arreglo de elementos JSX que contienen los enlaces con las URLs de los nombres de usuario de las redes sociales y las clases de los iconos.

    2. Finalmente, importar el componente SocialMediaLinks en el componente padre deseado y renderizarlo como cualquier otro componente de React.

    import React from "react";
    import SocialMediaLinks from "./SocialMediaLinks";
    
    function App() {
      const socialMediaHandles = [
        { type: "facebook", handle: "https://www.facebook.com/username" },
        { type: "twitter", handle: "https://www.twitter.com/username" },
        { type: "linkedin", handle: "https://www.linkedin.com/in/username" },
        // agregar más nombres de usuario de redes sociales según la respuesta de la API
      ];
    
      return (
        <div classname="App">
          <socialmedialinks socialmediahandles="{socialMediaHandles}"></socialmedialinks>
        </div>
      );
    }
    
    export default App;
    
    1. Se utiliza el atributo target="_blank" para abrir las URLs de los nombres de usuario de las redes sociales en una nueva pestaña al hacer clic.

    2. Se utiliza el atributo key={handle.type} para asegurar que cada par de enlace/icono renderizado en el arreglo mapeado tenga un valor de clave único que se puede utilizar para rastrear.

    Siguiendo los pasos anteriores, los nombres de usuario de las redes sociales se mostrarán en la página web como enlaces HTML normales con iconos de redes sociales.

Comments are closed.