Closed fedono closed 1 year ago
qs.stringify 会将 location.query 的数据都转换为字符串,qs有讨论这个问题 Parse booleans & numbers #91
qs.stringify
location.query
qs
qs 作者在 文档 中建议使用 query-types,query-types 这个包是在 Node 中使用的,可以把里面的代码复制出来,或者你们可以单独发个包
query-types
在 amis-core/utils/helper.ts
amis-core/utils/helper.ts
export function qsparse( data: string, options: any = { arrayFormat: 'indices', encodeValuesOnly: true, depth: 1000, // 默认是 5, 所以condition-builder只要来个条件组就会导致报错 arrayLimit: 1000 /** array元素数量超出限制,会被自动转化为object格式,默认值1000 */ } ) { // imp 可以在这里 parse 之后,使用 query-types 做一次值的转换 return qs.parse(data, options); }
amis@2.8.0
粘贴有问题的完整 amis schema 代码:
amis schema
{ "type": "crud", "syncLocation": true, "filter": { "body": [ { "type": "switch", "label": "switch", "name": "switch" } ] }, "columns": [ { "name": "name", "label": "name" } ] }
操作步骤
因为 switch 默认的 trueValue 为 true falseValue 为 false ,经过同步地址栏后,变成 字符串 "true" 或者 "false",所以这里需要手动去配置 trueValue 为 "1" 和 falseValue "0"
true
false
"true"
"false"
描述问题:
qs.stringify
会将location.query
的数据都转换为字符串,qs
有讨论这个问题 Parse booleans & numbers #91qs
作者在 文档 中建议使用 query-types,query-types
这个包是在 Node 中使用的,可以把里面的代码复制出来,或者你们可以单独发个包在
amis-core/utils/helper.ts
截图或视频:
如何复现(请务必完整填写下面内容):
amis@2.8.0
粘贴有问题的完整
amis schema
代码:操作步骤