Интересно, почему так много «решений» отправлено?
Если мое понимание новобранец о том, как работает GetFiles, прав, есть только два варианта, и любое из вышеперечисленных решений может быть сведено до эти:
На мой взгляд, вариант 1) лучше, но использование SearchOption.AllDirectories в таких папках, как C: \, будет использовать огромные объемы памяти. Поэтому я бы просто сделал рекурсивный под-метод, который проходит через все подпапки, используя опцию 1)
Это должно привести только к 1 GetFiles-операции в каждой папке и, следовательно, быть быстрым (вариант 1), но использовать только небольшой объем памяти, поскольку фильтры применяются после того, как каждая вложенная папка «чтение»> служебные данные удаляются после каждой подпапки.
Пожалуйста, исправьте меня, если я ошибаюсь. Я, как я сказал, совершенно новый для программирования, но хочу глубже понять вещи, чтобы в итоге стать хорошим:)
Вы должны использовать форму обратного вызова setState
:
this.setState((state, props) => ({
...state
items: [...state.items, { id, eventName, time, data, owner }]
})
Эта версия вычисляет следующее состояние на основе текущего состояния - не на основе состояния в начале функции рендеринга, которое может быть «устаревшие» - и поэтому безопасно делать несколько обновлений таким образом.