
把input框里的东西收集一下,暂且放到缓存里,在地址列表里通过读取缓存中的地址列表来渲染生成一个个地址栏 。(从上边这个点击保存按钮后,跳转页面并生成地址栏盒子)

上边为一堆input框,填完以后可以收集到里边的信息 data里定义的有{ }
- import {
- setStorage,
- getStorage,
- removeStorage
- } from '../../utils/localStorage.js'
-
-
- export default {
- data() {
- return {
-
- areaList: [],
- //选择的地址
- city: '',
- //输入的详细地址
- det_address: '',
- //输入的用户名
- userName: '',
- //输入的电话号码
- phoneNum: ''
- //这个按钮为填完input框里的信息,然后点击保存时的JS逻辑
- submit_address() {
- //判断一下如果任意一项为空 则弹出警告信息
- if (this.userName == '' ||
- this.phoneNum == '' ||
- this.det_address == '' || this.city == '') {
- //弹出提示信息 这里用的Vant组件里的警示框组件,
- // 不要复制这个,自己写个警示即可
- Dialog.alert({
- message: '填写信息未完善',
- }).then(() => {
- // on close
- });
-
- } else {
- //信息全部都有进行跳转 -(暂存到缓存中,后期有接口再改)
-
- //在这里读缓存信息
- let adrs = getStorage('adrs') || []
- const myadrs = [{
- userName: this.userName,
- phoneNum: this.phoneNum,
- det_address: this.det_address,
- city: this.city
- }]
- //把新增的东西合并到adrData中 然后
- let adrData = adrs.concat(myadrs)
- // 放入缓存中 adrs
- setStorage('adrs', adrData)
-
- uni.navigateTo({
- url: '/pagesA/myAddress/myAddress'
- });
这里使用到一个JS的concat() 方法用于连接两个或多个数组。详情如下:
我画了一下基本逻辑,可以对照以上代码看一下:

此时缓存中的列表:每条对象数据都会以列表的形式展示

在onload的时候读到缓存:
- data() {
- return {
- myadrlist:[],
- }
- },
-
- onLoad(options) {
- //拿到的参数 ---
- // this.userName = options.userName,
- // this.phoneNum = options.phoneNum,
- // this.det_address = options.det_address,
- // this.city = options.city
-
- //从缓存中拿参数 (当前用的如下方式)
- let adrs = getStorage('adrs') || []
- console.log(adrs);
- this.myadrlist = adrs
-
- },
渲染数据时通过插值语法即可:
-
- <view class="page_box" v-for="(item,index) in myadrlist" :key="index">
-
- <view class="box_top">
-
- <view class="left_img">
- <image src="../../static/image/myAddress_icon2.png" mode="aspectFit">image>
- view>
- <view class="right_img">
- <image src="../../static/image/myAddress_icon1.png" mode="aspectFit">image>
- view>
-
- <view class="box_top_top">
- <text>{{myadrlist[index].userName}}{{myadrlist[index].phoneNum}}text>
- view>
-
-
- <view class="box_top_bottom">
- <text>{{myadrlist[index].city}}{{myadrlist[index].det_address}}text>
- view>
- view>
- const setStorage = (key, value) => {
- wx.setStorageSync(key, value)
- }
-
- const getStorage = (key) => {
- return wx.getStorageSync(key)
- }
-
- const removeStorage = (key, callback) => {
- wx.removeStorage({
- key: key,
- success(res) {
- callback && callback()
- }
- })
- }
-
- export {
- setStorage,
- getStorage,
- removeStorage
- }