У меня есть вход для загрузки файлы. Загруженные файлы отображаются в виде списка, отображающего имя файла. Когда я добавляю свойство id в файл, он теряет все свои свойства, кроме свойства пути. Как я могу правильно добавить идентификатор?
const fileWithId = {...uploadedFile, id: "myIdName"} //does not work
Вы не можете копировать объекты File
, они представляют собой в значительной степени непрозрачные структуры данных, кроме указанные свойства, которые не включают id
.
Вы мощь можете просто назначить свойство id
(поскольку большинство объектов в среде браузера являются расширяемый, то есть вы можете добавлять к ним свойства), но я бы не рекомендовал это делать. Определение объекта File
со временем меняется, и вы никогда не знаете, может ли он получить свойство id
, которое означает что-то отличное от вашего id
.
То, что вы будете делать вместо этого, будет полностью зависеть от того, что вы ожидаете делать с File
. Например, если это только для информации на стороне клиента, вы можете сделать свой список списком объектов со свойствами id
и file
, где file
— исходный объект File
:
const fileWithId = {id: "myIdName", file: uploadedFile};
Похоже на проблема X/Y. Что вы планируете делать с этим
id
имуществом? Он не будет (например) отправлен на сервер.