У меня есть сценарий, в котором пользователь может загружать файлы с помощью перетаскивания.
Я использую эффект с пустым массивом зависимостей для настройки подписки RXJS, которая обрабатывает удаленные файлы и время загрузки:
const [attachments, setAttachments] = useState([])
useEffect(() => {
...
fileUploadSubject.subscribe(newAttachments => {
setAttachments([...attachments,newAttachments])
})
...
return () => {
subscriptions.forEach(s => {
s.unsubscribe()
})
}
},[])
Проблема в том, что эффект зависит от attachments
, а также от функции setAttachments
.
Если я добавлю attachments
в массив зависимостей, я откажусь от подписки на существующие загрузки. Также состояние attachment
не обновляется внутри эффекта из-за его закрытия.
Как мне решить такой сценарий? Я думал о нескольких путях, но, похоже, не могу найти простой путь вперед.