如何在HSX中内联构造具名字段Record以避免解析错误
解析错误的根因为HSX插值语法与Record字面量的大括号符号冲突。HSX的{}插值块默认会将第一个遇到的}判定为插值结束边界,因此Record字面量的闭合大括号会被误识别为插值块的结尾,后续剩余的}就会触发语法错误。
不需要对大括号做转义,只要给整个Record构造表达式增加明确的语法边界即可,有两种常用的内联写法:
- 用小括号包裹整个构造表达式
<a href={(StudentsAction { sortOrder = get #nameSort model, currentFilter = get #_currentFilter model, searchString = Nothing, pageIndex = Nothing })}> Last Name </a>
- 用
$运算符替代括号
<a href={StudentsAction $ sortOrder = get #nameSort model, currentFilter = get #_currentFilter model, searchString = Nothing, pageIndex = Nothing }> Last Name </a>
以上两种写法都可以正常解析,运行效果和单独用let声明变量完全一致。
内容的提问来源于stack exchange,提问作者dharmatech
相关产品推荐
相关产品推荐

