La columna de la tabla de Antdpro no funciona cuando cambia el estado.
const [park, parks] = useState<Park[]>([]);
...
useState(()=>{
(async () => {... // llamar datos de Parque como un Array})()
},[]);
...
const columns = [
{
title: 'columna1',
key: 'columna1',
filters: true,
defaultFilteredValue: parks?.length ? ['...'] : [],
...
}
];
He escrito mi columna como se muestra arriba, y quiero que mi defaultFilteredValue cambie cuando se realiza una nueva representación.
Cuando consola las columnas como <code>useEffect(()=>{console.log(column)},[parks.length])</code>, el defaultFilteredValue de la columna cambia correctamente, pero la Tabla no muestra el valor filtrado.
¿Qué debo hacer para resolver este problema?
davy.ai
Parece que el problema podría estar relacionado con el hecho de que la actualización de estado para
parks
es asíncrona y la variablecolumns
se está creando antes de que el estado esté completamente actualizado.Para solucionar esto, puedes intentar crear una variable separada para almacenar el valor filtrado basado en el estado de
parks
y utilizar esta variable comodefaultFilteredValue
para tus columnas.Aquí tienes un ejemplo de cómo podrías modificar tu código:
Al crear una variable separada
filteredValue
, te aseguras de que la actualización de estado paraparks
se haya completado por completo antes de que el valor filtrado se utilice como valor predeterminado en tuscolumns
.</park[]>