diff --git a/pages/API/navigator/navigator.test.js b/pages/API/navigator/navigator.test.js index fec3fec344a3a02382b3c34aa6431bfb11ae98da..248c527dd22f2434ae7e2694f002ba401979c7e8 100644 --- a/pages/API/navigator/navigator.test.js +++ b/pages/API/navigator/navigator.test.js @@ -1,5 +1,7 @@ jest.setTimeout(40000) const CURRENT_PAGE_PATH = '/pages/API/navigator/navigator' +const CHILD1_PAGE_PATH = '/pages/API/navigator/new-page/new-page-1' +const CHILD2_PAGE_PATH = '/pages/API/navigator/new-page/new-page-2' describe('navigator', () => { let page @@ -102,6 +104,20 @@ describe('navigator', () => { expect(lifeCycleNum).toBe(2) }) + it('navigateBackWithDelta2', async () => { + await page.callMethod('setLifeCycleNum', 0) + await program.navigateTo(CHILD2_PAGE_PATH) + await page.waitFor(500) + page = await program.navigateTo(CHILD1_PAGE_PATH) + await page.waitFor(500) + await page.callMethod('navigateBackWithDelta2') + await page.waitFor(500) + page = await program.currentPage() + expect(`/${page.path}`).toBe(CURRENT_PAGE_PATH) + lifeCycleNum = await page.callMethod('getLifeCycleNum') + expect(lifeCycleNum).toBe(10) + }) + it('navigateBackWithDelta100', async () => { page = await program.reLaunch(CURRENT_PAGE_PATH) await page.callMethod('setLifeCycleNum', 0) diff --git a/pages/API/navigator/navigator.uvue b/pages/API/navigator/navigator.uvue index 3a2125adde0e74a9585fe7dd18ce6010abd11ef1..82622fe3a6fcef3d3e0e6a2d165f23b0647a7662 100644 --- a/pages/API/navigator/navigator.uvue +++ b/pages/API/navigator/navigator.uvue @@ -1,7 +1,7 @@ @@ -24,6 +27,17 @@ export default { getLifeCycleNum(): number { return state.lifeCycleNum }, + navigateBackWithDelta2() { + uni.navigateBack({ + delta: 2, + success() { + console.log('回退上上层页面成功') + }, + fail(error) { + console.warn(`回退上上层页面失败: ${error.errMsg}`) + }, + }) + }, }, } diff --git a/pages/API/navigator/new-page/new-page-2.test.js b/pages/API/navigator/new-page/new-page-2.test.js index da4339ec14fada49a468aad22220c58bf6b334d9..45cff1a3d6346d18dcda066c4dd9c027eed0c832 100644 --- a/pages/API/navigator/new-page/new-page-2.test.js +++ b/pages/API/navigator/new-page/new-page-2.test.js @@ -37,7 +37,7 @@ describe('page-lifecycle', () => { }) // TODO: pageScrollTo 无法触发 onReachBottom, 待修复后调整 lifeCycleNum it('onPageScroll onReachBottom', async () => { - await program.pageScrollTo(1200) + await program.pageScrollTo(2000) const data = await page.data() expect(data.isScrolled).toBe(true) lifeCycleNum = await page.callMethod('getLifeCycleNum') diff --git a/pages/API/navigator/new-page/new-page-2.uvue b/pages/API/navigator/new-page/new-page-2.uvue index dca4fb6e84eea57de3521ed35d7b587119aa3a0d..02fb0b48a29d80ea652bce85337fb43f7779fb34 100644 --- a/pages/API/navigator/new-page/new-page-2.uvue +++ b/pages/API/navigator/new-page/new-page-2.uvue @@ -1,7 +1,7 @@ @@ -70,11 +70,11 @@ export default { }, }) }, - pageScrollTo(){ - uni.pageScrollTo({ - scrollTop: 1200 - }) - } + pageScrollTo() { + uni.pageScrollTo({ + scrollTop: 2000, + }) + }, }, }