外观
本次行程峰值
进阶 · 完整可运行示例
使用单次行程存储维护峰值,并用固定 SI 单位存储以适应显示单位切换。


完整源码
复制代码到新建仪表,或在 App 内导入 ZIP。
jsx
function main() {
const r=$data.current;
const previous=$sessionStorage.get('peakSpeedMPS');
const peak=r.speedMPS===null?previous:Math.max(previous??0,r.speedMPS);
if(peak!==null) $sessionStorage.set('peakSpeedMPS',peak);
const shown=peak===null?null:peak*(r.speedUnit==='mph'?2.2369362921:3.6);
return <CardContent title="本次峰值" trailing={r.speedUnit}>
<VStack spacing={8}>
<Text fontSize={58} color={$env.foreground} contentAnimation={{type:'numericText'}}>
{shown===null?'—':Math.round(shown)}
</Text>
<Text fontSize={11} color={$env.accent}>随本次记录结束清空</Text>
</VStack>
</CardContent>;
}可以先改这些地方
| 位置 | 作用 | 修改建议 |
|---|---|---|
peakSpeedMPS | 存储键 | 改名会开始使用另一项数据 |
Math.round | 显示精度 | 可改为 toFixed(1) |
在 App 中检查
- 本次记录内减速不应降低峰值。
- 下一次记录不应沿用上一次峰值。
- 切换单位后峰值应正确换算。
这个示例的边界
峰值只包含该卡片在存储有效期间处理到的读数。刚添加这张卡片不能恢复之前未记录进存储的整段行程峰值。