Рубрики
Без рубрики

Как разбирать имена файлов при броске папки на индивидуальный капзон в реакции

Хорошо, мы не говорим о падении себя с неба. Мы говорим о … Dapzonone! Перед погружением в эту статью я бы предположил, кто читал, это знает хорошее количество …

Автор оригинала: Michael Tong.

Хорошо, мы не говорим о падении себя с неба. Мы говорим о … Dapzonone! Перед погружением в эту статью я бы предположил, кто читал, это знает хорошее количество реагирования и JavaScript. Если вы имеете дело с перетаскиванием файлов и папок, скорее всего, вы использовали React-Downzone. Но что, если вы хотите настроить свой капуп? В моей индивидуальной версии Dropzone она состоит из трех компонентов: DropTarget.js droplist.js dropeffects.js Какие эти файлы? Droptarget – это файл, который фактически делает все обработку по указанию, какие файлы находятся в папке и т. Д. Вот реализация для Droptarget.js: импорт реагировать от «реагирования»; Импортные пропиты из «опоры»; импорт * как дропеэффекты из “./dropeffects”; Const Insidestyle = {backgroundcolor: “#CCCCCC”, непрозрачность: 0,5,}; const droptarget = (реквизит) => {const [Isover, .usestate (false);

const dragover = (ev) => {ev.preventdefault (); .Прорез; }; const handlefiles = (файл) => {console.log (файл); }; Const Drop = (EV) => {const.dataTaTransfer.getdata (“Drag-item”); var.dataTaTransfer.items [0] .webkitgetaSentry ();

если (intry.isfile) {intry.file (handlefiles); } еще если (intry.isdirectory) {var.createreader (); Reader.readentries (Функция (записи) {atents.foreach (функция (dir, ключ) {dir.file (handsfiles);});}); }

Setisover (false); }; const dratenter = (ev) => {.dropeffect; setisover (true); }; const dragleave = () => setisover (false); return (

Давай здесь!
); };

DropTarget.PropTypes = {OniteMdrop: PROPTYPES.FUNC.isrequirequired, Dropeffect: Proptypes.string, дети: пропорциональные. Droptarget.defaultprops = {dropeffect: dropeffects.all,}; Экспортировать deplattarget по умолчанию; Существует хорошая сумма вещей, так что давайте сосредоточимся только на нескольких деталях. Droptarget возвращает Div, который обрабатывает все виды перетаскивания функций (OnDrop, OnDropover и т. Д.). В этом сценарии единственный, о котором мы действительно обеспокоены, это OnDrop. Когда пользователь бросает папку наполнителя файлов в DIV, она распознана как событие. В этом событии (знаете как EV в этом примере) в рамках функции Drop, мы получаем точку, который перетаскивается. Предполагая, что мы имеем дело только с одной папкой, мы ссылаемся на «ev.dataTaTransfer.items [0] .webkitgetaSentry ()”, которая принимает первый элемент, который перетаскивается. После этого мы проверяем, если запись .isfile () vs intrict.isdirectory (). Если это каталог, то мы создаем читатель для анализа остальных записей в этом каталоге. Вот два других файла, которые необходимы, чтобы сделать эту работу://dreoplist.js Импорт реагирует с «реагирования»; Импорт Droptarget из “./droptarget”; Экспорт по умолчанию () => {const [enter, .usestate ([]); const itemdropped = (элемент) => setiTems ([… элементы, элемент]); Console.log («Список выпада»); Console.log («предметы:», предметы); return (

{items.map ((item) => {return (
{item}
);})}
); }; И другой файл, который ссылается droptarget.js://dropeffects.js export Const; экспорт констал; экспорт констал; экспорт констал; экспорт констал; экспорт констал; экспорт констал; экспорт констал; После того, как вы включили все эти три файла в папке, вы можете просто ссылаться на то, чтобы просто обратить внимание, как это: Import React, {компонент} от «реагирования»; Импорт капля из “./components/droplist”; Импорт логотипа от “./logo.svg”; Импорт “./app.csss”; Class App расширяет компонент {Render () {return (
); }} Экспортное приложение по умолчанию; И там у вас есть!