Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
La creación de un enlace React personalizado para almacenar archivos (push/purge), no representa el componente donde se usa

Tengo un proyecto de crear-reaccionar-aplicación con gancho personalizado como este:

 // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types const useStagedUploads = () => { const [items, setItems] = useState<CustomFileWithPath[]>([]); const setUploadItems = (files: CustomFileWithPath[]) => setItems(files); return [items, setUploadItems] as const; }; export default useStagedUploads;

Lo uso para enviar archivos cuando se navega (usando react-dropzone). Ahora, en uno de mis otros componentes, lo uso como se muestra a continuación *:

 const [ items, setUploadItems ] = useStagedUploads(); useEffect(() => { if (items) { onDrop(items); // eslint-disable-next-line @typescript-eslint/no-unsafe-return items.map((i) => // eslint-disable-next-line @typescript-eslint/no-unsafe-return setUploadItems( items.filter( (items: CustomFileWithPath) => items.path !== i.path ) ) ); } }, [items]);

Ahora, cuando la carga se realiza así (react-dropzone):

 const { getInputProps, open, acceptedFiles } = useDropzone({ noClick: true, noKeyboard: true, }); useEffect(() => { if (acceptedFiles) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return acceptedFiles.map((el) => stageUpload(el)); } }, [acceptedFiles]);

... El componente anterior (*) no se vuelve a renderizar (probé consola, depurador, etc.), es decir, no recibo elementos en su matriz " [] " vacía. Tampoco reacciona useEffect body.

Probé usando un tipo primitivo simple que se vuelve a renderizar. ¿Es para que los archivos no se puedan almacenar en ganchos personalizados de reacción o para evitar que se vuelvan a renderizar/cualquier problema de serialización?

Gracias.

Editar:

Como se solicitó en los comentarios, aquí hay un stackblitz: https://stackblitz.com/edit/react-ts-w7swmv?embed=1&file=receive-files.ts

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda