Describe el error
Datagrid: Palaceholder se establece en NaN.000 después de hacer clic en el campo vacío
Reproducir
Pasos para reproducir el comportamiento:
Comportamiento esperado
El marcador de posición debe mostrar
Versión
4.530 - beta - IDS
Capturas de pantalla
Plataforma
Todos los principales navegadores y sistemas operativos
Contexto adicional
N / A
@ Jah25 Quizás debería
formateador: marcador de posición y editor: ingrese los números aquí:
https://github.com/infor-design/enterprise/blob/main/app/views/components/datagrid/example-placeholder.html#L71
Dado que este es un primer problema, creo que quizás sea un poco complejo para empezar (lo siento de mi parte). Pero puedo ver una solución que estaría en https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10434
La función coerveValue está intentando volver a poner los datos en el formato de origen fx (número en este caso). Creo que sería seguro excluir a NaN aquí. Entonces tal vez NaN solo se muestra en blanco
// coerced value may be coerced to empty string, null, or 0
if (coercedVal === undefined && Number.isNaN(value)) {
coercedVal = value;
}
Algo en ese sentido. Pero solo una pista. Me doy cuenta de que este ejemplo también es un poco extraño, así que tal vez arreglemos esto rápido y sigamos adelante.
HTH
@tmcconechy Hola Tim, acabo de ver esto. Sí, me tomó un poco de persecución para encontrarlo, pero también encontré que la coerción era el problema, aunque me encontré con esto aquí, donde la coerción se compara con el valor antiguo para determinar el tipo de datos que también debería forzar.
https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10372
mi solución iba a ser algo como esto
let isWord = /[A-Za-z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]]/
...
else if (typeof oldVal === 'number' && value && isWord.test(value) ) {
newVal = Locale.parseNumber(value); // remove thousands sep , keep a number a number
}
No creo que sea una protección perfecta, pero cubre algunos casos extremos más, ¿quieres seguir adelante con un cambio o la solución de ejemplo?
@ Jah25 parece que debería funcionar. Hagamos un intento