작은 프로그램 개발 중에 현재 페이지 데이터를 이전 페이지로 전달해야 하는 경우가 종종 있는데 wx.navigateBack()이 데이터를 전달할 수 없습니다.
일반적인 방법은 현재 페이지 데이터를 로컬 캐시에 넣은 다음 이전 페이지를 캐시에서 꺼내는 것입니다.
또한 페이지 스택을 영리하게 활용하는 또 다른 방법이 있습니다.
getCurrentPages() 함수는 현재 페이지 스택의 인스턴스를 가져오는 데 사용되며 스택 순서대로 배열 형태로 제공됩니다. 마지막 요소는 현재 페이지입니다.
여기서 핵심은 현재 페이지에서 이전 페이지의 인스턴스 객체를 가져온 뒤 해당 객체의 메소드를 호출해 데이터 전송을 완료한다는 점이다.
페이지 A
Page({ data: { name: '' }, ... , //更新name changeData: function(name){ this.setData({ name: name }) }})
페이지 B에 이름을 입력할 수 있는 텍스트 상자가 있다고 가정하고 돌아가기 버튼을 클릭하면 페이지 A
Page({ //此方法用于文本框输入回调 inputTyping: function (e) { //获取页面栈 var pages = getCurrentPages(); if(pages.length > 1){ //上一个页面实例对象 var prePage = pages[pages.length - 2]; //关键在这里 prePage.changeData(e.detail.value) } }})
의 이름이 업데이트됩니다. 이전 페이지의 경우 페이지 A는 wx.navigateTo를 사용하여 페이지 B로 이동해야 하며 wx.redirectTo를 사용할 수 없습니다. 이렇게 하면 이전 페이지가 닫히고 페이지 B가 해당 정보를 얻을 수 없게 됩니다. 이전 페이지 페이지 인스턴스.
[관련 추천]
3.WeChat Lala Takeaway 2.2.4는 WeChat Rubik's Cube 소스 코드의 오픈 소스 버전을 해독합니다
위 내용은 WeChat 개발 소개 (11) 이전 페이지의 데이터 업데이트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!