微信小程序 表单 选择跳转新页面,选择后,返回上一页面保留原页面已填写的值

场景:
表单页有很多项需要填写,个别项数据较多,需要跳转到新的页面去选择后,带着结果返回。如图。
此时,想要返回时,已经填写过的内容保留不变,不被清空。在这里插入图片描述
解决:
在下一页去获取上一页data中的数据,并修改,再通过wx.navigateBack({ delta: 1, })返回上一页,页面不会刷新,且所有数据都在。

代码:
表单页

<view class="form-item" wx:if="{
     
     {isFresh==1}}">
  <view class="title">载具</view>
  <view class="content" bindtap="bindSelectBasket">
    {
   
   {baseInfo.basketGoodsName ? baseInfo.basketGoodsName : '请选择'}}
    <view class="">
     <image class="pop-image" src="https://retail.benlai.com/fortune/images/bmw/downArrow.png"></image>
    </view>
  </view>
 </view>
bindSelectBasket() {
    
    
      wx.navigateTo({
    
    
        url: '/page/newProductDeclaration/selectBasket/selectBasket?regionCode=' + this.data.baseInfo.regionCode
      });
},

子页面

 <view class="vendor-container">
   <view class="vendor-item {
     
     {!item.goodsSelect ? 'theme-grey' : ''}}" wx:for="{
     
     {vendorList}}" wx:for-index="index"
         wx:for-item="item" data-basketGoodsNo="{
     
     {item.goodsNo}}" data-basketGoodsName="{
     
     {item.goodsName}}" wx:key="index" data-item="{
     
     {item}}" bindtap="vendorItemClick">
     <view class="title">
       <view>{
   
   {item.goodsName}}</view>
     </view>
     <view class="sub-title">
       <view>规格:{
   
   {item.spec}}</view>
     </view>
     <view class="sub-title">
      <view>编号:{
   
   {item.goodsNo}}</view>
     </view>
   </view>
 </view>
vendorItemClick(e) {
    
    
    var pages = getCurrentPages();
    // var currPage = pages[pages.length - 1]; //当前页面
    var prevPage = pages[pages.length - 2];
    prevPage.setData({
    
    
      "baseInfo.basketGoodsName": e.currentTarget.dataset.basketgoodsname,
      "baseInfo.basketGoodsNo": e.currentTarget.dataset.basketgoodsno
    })
    wx.navigateBack({
    
    
      delta: 1,
    })
  },

参考:
微信小程序 表单 选择跳转新页面 返回页面保留原页面已填写的值

猜你喜欢

转载自blog.csdn.net/guairena/article/details/127578891