シナリオ:
フォーム ページには入力する項目が多数あり、一部の項目には大量のデータが含まれているため、新しいページにジャンプして選択し、結果を返す必要があります。写真の通り。
このとき、戻りたい場合は、入力した内容はそのままでクリアされません。
解決策:
次のページに移動して前のページのデータを取得し、変更してから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,
})
},
参考:
Wechat アプレットのフォーム選択で新しいページにジャンプし、元のページに入力された値を保持するためにそのページに戻る