/** * 微信小程序 v-for :key 仅支持简单属性访问,不支持模板表达式。 * 在 JS 中为列表项预生成 _wxKey 后,模板使用 :key="item._wxKey" */ export function withWxKey(list, idField = 'id', fallbackPrefix = 'i') { return (list || []).map((item, index) => ({ ...item, _wxKey: item[idField] != null && item[idField] !== '' ? String(item[idField]) : `${fallbackPrefix}${index}`, })) } /** 单条消息/列表项补全 _wxKey(用于 push、$set 等增量更新) */ export function ensureWxKey(item, idField = 'id', fallback) { if (!item || typeof item !== 'object') return item if (item._wxKey != null && item._wxKey !== '') return item const id = item[idField] return { ...item, _wxKey: id != null && id !== '' ? String(id) : String(fallback), } }