我正在try 删除div并更改计数器,只需单击一下按钮即可:

 <button @onclick="() => RemoveDocument(className)" class="close-button inner-div">X</button>


private async void RemoveDocument(string className)
{
    AmountOfDocs--;
    await JSRuntime.InvokeVoidAsync("removeDiv", className);

}


function removeDiv(elName) {
    var element = document.getElementById(elName);      
    element.remove();
}

但如果我这么做了,它就会奏效.有问题的div将从DOM中删除,但随之而来的是一条错误消息:

blazor.server.js:1  [2023-10-17T14:58:52.607Z] Error: There was an error applying batch 11.

blazor.server.js:1  Uncaught (in promise) TypeError: Cannot read properties of null (reading 'removeChild')
    at H (blazor.server.js:1:17228)
    at ie.applyEdits (blazor.server.js:1:21401)
    at ie.updateComponent (blazor.server.js:1:20631)
    at blazor.server.js:1:115262
    at Pn.processBatch (blazor.server.js:1:115634)
    at kt.<anonymous> (blazor.server.js:1:129816)
    at blazor.server.js:1:72077
    at Array.forEach (<anonymous>)
    at kt._invokeClientMethod (blazor.server.js:1:72063)
    at kt._processIncomingData (blazor.server.js:1:70105)

[2023-10-17T14:58:52.655Z] Error: System.AggregateException: One or more errors occurred. (TypeError: Cannot read properties of null (reading 'removeChild'))
 ---> System.InvalidOperationException: TypeError: Cannot read properties of null (reading 'removeChild')
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
   --- End of inner exception stack trace ---
log @ blazor.server.js:1
tr @ blazor.server.js:1
(anonymous) @ blazor.server.js:1
(anonymous) @ blazor.server.js:1
_invokeClientMethod @ blazor.server.js:1
_processIncomingData @ blazor.server.js:1
connection.onreceive @ blazor.server.js:1
o.onmessage @ blazor.server.js:1
blazor.server.js:1 [2023-10-17T14:58:52.656Z] Information: Connection disconnected.

在那之后,我不能点击任何其他按钮.

我的错误在哪里?

推荐答案

"仅当对象不与Blazor交互时,才使用JavaScript(JS)更改DOM.Blazor维护DOM的表示形式,并直接与DOM对象交互.如果在外部使用JS直接或通过JS Interop修改由Blazor呈现的元素,则DOM可能不再与Blazor的内部表示形式which can result in undefined behavior匹配.未定义的行为可能只会干扰元素或其功能的呈现,但也可能会给应用程序或服务器带来安全风险."https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-7.0

Javascript相关问答推荐

除了在Angular 16中使用快照之外,什么是可行且更灵活的替代方案?

获取表格的左滚动位置

对象和数字减法会抵消浏览器js中的数字

是什么原因导致此Angular 16应用程序中类型错误时属性结果不存在?

TypScript界面中的Infer React子props

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

未捕获错误:在注销后重定向到/login页面时找不到匹配的路由

使搜索栏更改语言

如何从调整大小/zoom 的SVG路径定义新的d属性?""

CheckBox作为Vue3中的一个组件

当Redux提供程序访问Reduxstore 时,可以安全地从Redux提供程序外部调用钩子?

编辑文本无响应.onClick(扩展脚本)

扩展类型的联合被解析为基类型

当我在Reaction中创建一个输入列表时,我的输入行为异常

使用Ace编辑器对子组件实例的native-element 进行Angular 获取时面临的问题

使用父标签中的Find函数查找元素

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

我无法在Api Reaction本机上发出GET请求

需要RTK-在ReactJS中查询多个组件的Mutations 数据