Intenté guardar archivos capturados por dropzone en el proveedor del estado local, pero cuando intento obtener valores de archivo, se muestra como un tipo indefinido.
FileContext.js :
import { useState, useCallback } from 'react'; import constate from 'constate'; function useLocalReducer({ initialValues = {} } = {}) { const [localState, setLocalState] = useState(initialValues); const localDispatch = useCallback((newValues) => { setLocalState((prevState) => { return { ...prevState, ...newValues }; }); }, []); return { localState, localDispatch }; } const [LocalFilesStateProvider, useLocalFilesState, useLocalFilesDispatch] = constate( useLocalReducer, (value) => value.localState, (value) => value.localDispatch ); export { LocalFilesStateProvider, useLocalFilesState, useLocalFilesDispatch };Mi retorno de Component.js :
<LocalFilesStateProvider> <FormProvider {...methods}> ... {openAttachFilesModal && ( <AttachFilesModal open={openAttachFilesModal} onClose={() => setOpenAttachFilesModal(false)} /> )} </FormProvider> </LocalFilesStateProvider>Mi AttachFilesModal.js ha guardado archivos de esta manera:
const localDispatch = useLocalFilesDispatch(); const attachFiles = useCallback(() => { localDispatch({ files: file.approved // file is dropzone files }); }, [file, localDispatch]);Y mi Component.js ha usado archivos de esta manera:
const { files } = useLocalFilesState(); console.log(files); // undefined