range 的 default 写成字符串导致滑块停在最左端
现象#
给 range 设置写了 "default": "40",编辑器滑块停在最小值,前台间距变成 0;checkbox 写成字符串 true 后永远处于勾选状态。
原因#
- schema 按 setting type 校验 default,字符串不会被转成数字,range 取值回落到
min - checkbox 只认 JSON 布尔值,字符串 false 在 Liquid 中属于真值,条件恒成立
- Liquid 做
plus、times运算时,字符串被当作 0 参与计算 - 复制配置片段时保留了引号,数字被引号包住,肉眼很难发现
处理步骤#
- 改成不带引号的数字:
"default": 40,同时确认min、max、step都是数字 - 布尔类设置用
"default": true或 false,不要加引号 - 输出前做一次类型兜底:
{{ section.settings.gap | plus: 0 }} - 搜索文件里
"default": "后紧跟数字的写法,逐个核对 - 在编辑器拖动滑块并保存,确认写回模板 JSON 的是数字而不是字符串
验收标准#
滑块初始位置与 default 一致,前台 style 输出为数字带单位,不再是空值或 0。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。