fix(runtime): onGenerateRoute pathElements 越界 RangeError
- buy-service/renew-minioffice 加长度检查 (pathElements.length >= 4/3) - 根因: Flutter web 深链接渐进式路径解析, onGenerateRoute 被调用多次, pathElements 递增 ([,buy-service] -> [,buy-service,1] -> 完整), 前几次路径短但 pathElements[1]已匹配 -> int.parse([2])/[3] 越界 - 直接访问/刷新 /buy-service/x/y, /renew-minioffice/x 时崩溃 - 恢复 buy_service 实验代码 (data 校验 + mounted 保留)
This commit is contained in:
15
tools/e2e/diag_paths.js
Normal file
15
tools/e2e/diag_paths.js
Normal file
@@ -0,0 +1,15 @@
|
||||
const { chromium } = require('playwright');
|
||||
(async () => {
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
const page = await (await browser.newContext({viewport:{width:1280,height:900}})).newPage();
|
||||
const logs = [];
|
||||
page.on('console', m => logs.push(m.text()));
|
||||
await page.goto('http://127.0.0.1:8099/buy-service/1/ministore', { waitUntil: 'load' }).catch(()=>{});
|
||||
await page.waitForTimeout(7000);
|
||||
console.log('=== path elements 打印(看是否有短路径)===');
|
||||
logs.filter(l => l.includes('path elements')).forEach(l => console.log(' ' + l.slice(0,80)));
|
||||
console.log('=== RangeError 之前的最后几条 console ===');
|
||||
const idx = logs.findIndex(l => l.includes('RangeError'));
|
||||
if (idx >= 0) logs.slice(Math.max(0,idx-4), idx).forEach(l => console.log(' ' + l.slice(0,90)));
|
||||
await browser.close();
|
||||
})();
|
||||
Reference in New Issue
Block a user