“无法使用 Blazor InputFile 组件读取 null 错误的属性‘_blazorFilesById’”

问题描述 投票:0回答:4

我开始从我的 Blazor WebAssembly 应用程序收到此错误:

“无法使用 Blazor 应用程序读取 null 错误的属性‘_blazorFilesById’”

我假设这与我正在使用的

InputFile
组件有关,该组件一直工作正常。

我尝试过重新启动 VS、清理并重建、重新启动 IIS 以及终止 Chrome,但均无济于事。 这可能是什么原因造成的?

c# blazor blazor-webassembly blazorinputfile
4个回答
47
投票

事实证明,这是因为我添加了条件代码来隐藏页面上的

InputFile
组件。 这样做会导致错误,如 BtbN 在 GitHub 上的这篇文章中所述:

您是否修改了页面,因此未呈现 InputFile 元素 不再了吗?它必须保持存在,否则浏览器会清除任何 与之相关的资源。


4
投票
我尝试将 InputFile 组件保留在 Div 内,并有条件地(基于 bool @uploadingInProgress)隐藏 Div(尤其是在上传过程中)完美地工作


2
投票
发生这种情况是因为您很可能在 onchange 函数中调用 StatehasChanged


0
投票
添加异步方法并放置下一个代码

等待使用 FileStream fs = new(path, FileMode.Create); 等待 img.BrowserFile.OpenReadStream().CopyToAsync(fs);

对我来说这个工作

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.