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.

Ant Design: ¿Cómo añadir un ícono a una pestaña?

Quiero agregar un icono antes del título de cada pestaña abierta. La fuente de los iconos podría ser bootstrap icons u otras bibliotecas. ¿Cómo se puede lograr esto?

Estoy utilizando la biblioteca antd para crear pestañas, que no tiene la opción de agregar un icono directamente. A continuación se muestra el fragmento de código y aquí está el enlace a jsfiddle – https://jsfiddle.net/6719phr3/1/

import React, { useState, useCallback } from “react”;
import { Tabs, Button } from ‘antd’;
import ‘antd/dist/antd.css’;

const { TabPane } = Tabs;

const Tabbar = (props) => {

const [focusingPaneKey, setFocusingPaneKey] = useState(”)
const [openingPaneKeys, setOpeningPaneKeys] = useState([])

const openPane = (paneKey) => {
setOpeningPaneKeys(oldState => {
if (!oldState.includes(paneKey)) {
return […oldState, paneKey]
}
return oldState
})

setFocusingPaneKey(paneKey)
}

const closePane = (paneKey) => {
if (paneKey === focusingPaneKey) {
const paneKeyIndex = openingPaneKeys.indexOf(paneKey)
setFocusingPaneKey(openingPaneKeys[paneKeyIndex – 1])
}

setOpeningPaneKeys(openingPaneKeys.filter((openingPaneKey) => openingPaneKey !== paneKey))
}

const handleTabsEdit = useCallback((key, action) => {
if (action === ‘remove’) {
closePane(key)
}
}, [closePane])

const { panes } = props
const keysOfPane = Object.keys(panes)

return (

{keysOfPane.map((key) => (

))}


{openingPaneKeys
.map((key) => panes[key])
.map((pane) => (

{pane.content}

))}

)

export default Tabbar

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un icono antes del título de cada pestaña abierta, podemos usar la propiedad ‘tab’ del componente ‘TabPane’ e incluir el icono antes del título.

    Primero, necesitamos importar la librería de iconos, por ejemplo, podemos usar los iconos de Bootstrap agregando la siguiente línea a nuestras importaciones:

    import "bootstrap-icons/font/bootstrap-icons.css";

    Luego, podemos modificar la propiedad ‘tab’ del componente ‘TabPane’ al incluir la etiqueta ‘‘ con el icono deseado antes del título, como se muestra a continuación:

    <tabpane tab="{"></tabpane><span>
                <i classname="bi bi-file-earmark"></i>
                {pane.title}
            </span>
        } 
        key={pane.key}>
        {pane.content}
    
    

    En el ejemplo anterior, estamos usando el icono ‘file-earmark’ de Bootstrap icons. Lo incluimos antes de ‘pane.title’ dentro de un elemento ‘span’.

    Una vez que incluimos el icono antes del título, se mostrará en las pestañas y permitirá a los usuarios diferenciar entre diferentes pestañas según el icono.

Comments are closed.