@attributes的错误使用会导致不可预料的后果。
错误案例
我就遇到了两个相关的错误:
错误1: 少写了字母,使用成了
@attribute
错误2: 在父组件中的声明中添加了注释
复现错误
下面复现一下错误2.
子组件绑定父组件设置的不匹配的属性。这个用法还是比较常用的。这样可以在父组件中可以传递Bulk属性给子组件。
父组件
子组件
[Parameter(CaptureUnmatchedValues=true)]
public Dictionary<string,object>? Attrs { get; set; }
运行没有任何报错,但是该子组件在父组件上会以一种怪异的形式展示。
插入断点进行调试时,发现注释也被添加到了这个字典中,导致显示异常。
知道了问题所在,解决问题就比较简单了。
解决方案
一个简单的方式是移动注释或者删除注释
如果不想移动,可以进行二次处理一下。(这里使用了最直接的方式)
然后使用
@attributes="FilterAttrs"即可。