用途:为受功能开关控制的组件编写 Storybook 故事,包括布尔开关和多变量/实验分组变体。
主要能力与用法:通过故事参数 featureFlags 设置开关,而非命令式调用。布尔开关用数组形式,数组项即求值为 true 的开关:parameters: { featureFlags: [FEATURE_FLAGS.MY_FLAG, FEATURE_FLAGS.OTHER_FLAG] }。多变量开关(值为变体字符串)用记录形式,数组形式只能表达 true:parameters: { featureFlags: { [FEATURE_FLAGS.THEME_OVERRIDE]: 'intent_plus' } }。记录形式可混用布尔与变体,如 { 'some-bool-flag': true, 'my-experiment': 'test_b' }。可在 meta 级设置以作用于文件内所有故事,也可在单个故事级设置不同分组。
限制与注意事项:切勿在故事中调用 featureFlagLogic.actions.setFeatureFlags(...),它在视觉回归运行时静默失效(渲染开关关闭分支),但在 jest 中通过,导致单测通过而快照错误。故事参数会替换(浅合并)meta 参数,故事级 featureFlags 会丢弃 meta 级设置的所有开关,需重新列出仍需要的开关。不要通过禁用 posthog-js 开关(如 advanced_disable_feature_flags)来修复,否则应用外壳因 receivedFeatureFlags 未置真而无法渲染,Scenes-App/* 故事会卡在 3 秒超时并抖动。若组件渲染还依赖其他运行时状态(localStorage、APP_CONTEXT 字段、kea logic),需在故事文件内的小型包装器中一并准备,不要为可渲染性给生产组件添加仅测试用属性。