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

260
Vistas
¿Por qué la columna de la tabla de reacción no acepta una función como acceso?

He encontrado un pequeño problema al convertir mi aplicación a mecanografiado. Aquí está el código (abreviado):

Tengo un tipo con una propiedad de cadena simple:

 export type Person = { birth_date: string ...

Esto se usa en un componente de tabla personalizado usando react-table :

 import {useTable, useSortBy, Column} from 'react-table' const PersonTable: FC<{persons: Person, columns: Column<Person>}> = ({ persons, columns }) => { const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable<Person>({ columns, data: persons }, useSortBy) ...

Debido a que la fecha de nacimiento tiene el formato AAAA-MM-DD, quiero cambiarlo a algo legible al definir las columnas, donde formatDate devuelve una cadena:

 const columnsPersons = useMemo(() => [ { Header: 'Birth date', accessor: (row: Person) => formatDate(row.birth_date) } ], [])

Pero cuando me puse

 <PersonTable columns={columnsPersons} ...

Me sale el siguiente error (acortado):

 Type '{ Header: string; accessor: string; }' is not assignable to type '{ accessor: "birth_date"; }'. Types of property 'accessor' are incompatible. Type 'string' is not assignable to type '"birth_date"'.

Sé que puedo usar una función para el descriptor de acceso, porque esto funciona. Pero no sé si lo estoy usando y/o escribiendo correctamente. Cualquier ayuda es apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que devolviste un tipo más amplio de formatDate de lo que esperaba el descriptor de acceso. Debe devolver desde formatDate un tipo 'birth_date', no una cadena. O describa la columna como { 'lo que devolvió de formatDate': string } en lugar de { 'birth_date': string }

 // 1. const formatDate = (date) => return date as 'birth_date' // 2. const formatDate = (date: string): 'another_birth_date' => { .... } const PersonTable: FC<{persons: Person, columns: Column<{'another_birth_date': string}>
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