#reactjs #syncfusion
Вопрос:
Есть ли в любом случае возможность отключить функцию перетаскивания, когда папка пуста. Я использую файловый менеджер syncfusion и реагирую js только для просмотра папки и файла с сервера узла. Я написал следующий код внутри возврата компонента react:
<div className='control-section'>
<FileManagerComponent
id='file'
view='LargeIcons'
enablePersistence={true}
ajaxSettings={{
async: true,
url: hostUrl,
downloadUrl: hostUrl '/Download',
getImageUrl: hostUrl '/GetImage',
}}
detailsViewSettings={{
columns: [
{
field: 'name',
headerText: 'File Name',
minWidth: 120,
width: 'auto',
customAttributes: { class: 'e-fe-grid-name' },
template: '${name}',
},
],
}}
contextMenuSettings={{
visible: false,
}}
fileSelect={onFileSelect}
success={onSuccess}
failure={onFailure}
>
<Inject services={[DetailsView]} />
</FileManagerComponent>
</div>
Ответ №1:
Вы можете выполнить свои требования, установив свойство DropArea для uploadObj равным нулю в случае успеха файлового менеджера, как показано в приведенном ниже фрагменте кода,
var len, drag;
export class Overview extends SampleBase {
}
created() {
var file =document.getElementsByClassName('e-filemanager')[0].ej2_instances[0];
drag = file.uploadObj.dropArea; //to store the drop area element
}
success(args) {
if (args.action == 'read' amp;amp; args.result.files.length == 0) {
file.uploadObj.dropArea = null;
} else {
file.uploadObj.dropArea = drag;
}
}
render() {
return (
<div>
<div className="control-section">
<FileManagerComponent
created={this.created}
success={this.success}
>
</FileManagerComponent>
}
Образец: https://stackblitz.com/edit/react-wqgwtz-2p8gp9
Ссылка на API : https://ej2.syncfusion.com/react/documentation/api/uploader/#droparea
Комментарии:
1. Спасибо, эти коды работают, но даже загрузка перетаскиванием отключена, в области просмотра по-прежнему отображается значок папки и текст «Эта папка пуста, перетащите файлы сюда для загрузки». Я хочу удалить эту информацию.
2. syncfusion.com/forums/158259/… Пожалуйста, обратитесь к этому форуму