小程序如何给一维索引数组添加key标识符

小程序如何给一维索引数组添加key标识符,第1张

通过wxrequest获取到服务器数据之后将数据(一个json对象)绑定至post数组,然后页面中获取数据的时候可以直接通过(数组名属性)直接取值。数组中有多个json对象的话,则需要wx:for遍历取值。

单个json对象数据绑定

页面取值:

有以下几种情况哈:

1 小程序中for循环的item,需要使用{{}}进行数据绑定,例如:

```

<view wx:for="{{list}}" wx:key="index">

<view>{{item}}</view>

</view>

```

2 如果您无法获取到for循环的item,可能是因为您在页面渲染时,没有正确地将数据传递到wxml中,或者数据格式出现了问题。

3 另外,如果您在for循环中使用了异步函数或者网络请求,可能会出现获取不到item的情况,因为此时item的值可能还未被赋值。

4 最后,建议您检查一下代码中是否存在语法错误、变量名错误等问题,这些都可能导致获取不到item。

希望以上几点能对您有所帮助,如有其他问题,欢迎再次咨询。

1、获取微信小程序的 AppID

首先,我们需要拥有一个账号,如果你能看到该文档,我们应当已经邀请并为你创建好一个账号。注意不可直接使用服务号或订阅号的 AppID。 利用提供的账号,登录>

1使用内置组件scroll-view

2实现点击时出现的背景样式

3使用scroll-into-view,实现点击时自动滚动

前言

本次主要内容是介绍页面tab的开发,如何实现tab与页面内容联动呢?关注我就知道!

本次效果展示

 

一、如何实现页面tab

1使用内置组件scroll-view

如下图所示,我们需要使用到红色框框中的属性,此属性可也实现滚动

这里有一个大坑,不管是使用scroll-x还是scroll-y遍历数据都是出现在左边一数列(这里我们只关注scroll-x、scroll-y)

<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">

<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"

:class="currentIndex==index'active':''" @click="changeTab(index)">

{{item}}

</view>

</scroll-view>

<scroll-view scroll-y="true" :style="'height:'+scrollH+'px'">

<view v-for="(item,index) in 100 " :key='index'>

{{item}}

</view>

</scroll-view>

我们只能通过样式来改变它,让它横过来

scroll-view-t view {

display: inline-block;

font-size: 32rpx !important;

margin: 0 15rpx;

}

scroll-view-t {

white-space: nowrap;

height: 88rpx;

line-height: 88rpx;

}

 

2实现点击时出现的背景样式

这里我们需要定义一个默认的索引currentIndex,在通过点击事件所传出去的索引进行判断,从而获得当前所点击的对象给到样式,样式我们就用三元表达式判断赋予样式,如下点击方法

changeTab(index) { //nabbar栏点击切换

// if (thiscurrentIndex === index) return

thiscurrentIndex = index

// thisscrollinto = 'tab' + index

// if (thiscurrentIndex < 10) {

// thisscrollinto = 'tab0'

// }

},

如下是绑定的点击事件和三元表达式判断赋予样式,其中背景样式提前写好了 

<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"

:class="currentIndex==index'active':''" @click="changeTab(index)">

{{item}}

</view>

 不过现在只实现了通过点击样式发生改变,感觉实现了tab切换,眼下要解决点击时tab这个导航条也要自己滚动起来,不能一边手动滚动,然后再点击吧

3使用scroll-into-view,实现点击时自动滚动

使用它的目的主要是,在点解tab时可以实现,你向那个方向点,他就往那个方向滚动,不过在点回去的时候,就有坑了,需要对其作出判断 

 阅读文档很难理解对吧,我在这里说说我的理解,这里是想要我们通过在scroll-view中属性scroll-into-view绑定一个元素,此元素还要获得id,此id还不能已数字开头,此id就是移动的关键,需要绑定,所遍历内容的索引,从而实现往哪里滚动,不过想点回去就需要进行判断

如下代码中在scroll-view,使用scroll-into-view绑定了一个自己定义的空元素scrollinto

在v-for遍历后获得了索引,id就通过索引进行了绑定,拼接了以tab开头

<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">

<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"

:class="currentIndex==index'active':''" @click="changeTab(index)">

{{item}}

</view>

</scroll-view>

实现点击滚动很简单,要滚动回去就要判断了,如下代码,只要当前的thisscrollinto = 'tab' + index就能实现点击就滚动,回去是就要判断当前点击的缩影,手动赋值,给一个最好的区间,这样效果更好

changeTab(index) { //nabbar栏点击切换

if (thiscurrentIndex === index) return

thiscurrentIndex = index

thisscrollinto = 'tab' + index

if (thiscurrentIndex < 10) {

thisscrollinto = 'tab0'

}

},

如图所示是接下来需要完成的效果:

页面结构:2个, index (首页)以及 details (详情页),首页是产品列表,点击产品后进入对应的详情页。

首页的wxml结构:

首页的js数据:

对于详情页请求数据,核心在于点击对应产品然后请求对应的产品数据,因此这里的 navigator 组件跳转的url至关重要,这里的 /pages/details/detailsgoodsId={{index} 是模拟了后台提供的数据接口,后面的 goodsId 作为产品的辨识符,当点击之后可以获取到当前点击的是哪个产品,以供详情页进行请求数据。

详情页wxml结构:

详情页js数据:

详情页请求数据的重点在于生命周期函数, onLoad 函数,它可以在页面加载的时候进行触发,并可以通过参数获取到跳转链接上面的辨识符,也就是通过 onLoad 函数中的 options ,获取到了刚才在 indexwxml 页面url中的辨识符: goodId ;

通过它可以获取到对应的产品数据,再将数据进行修改更新到详情页结构 detailswxml 即可。

本案例中跨页面传递数据主要是利用了URL传值,在另外一个页面中接收,并将数据渲染到页面中,这个过程就需要用到生命周期函数:onLoad函数。

微信小程序indexjs没有上传是一个比较常见的问题,首先您需要检查一下您的网络环境是否正常,如果网络正常,您可以尝试重新上传indexjs文件,如果仍然无法上传,您可以尝试重新安装微信小程序开发工具,或者您可以联系微信客服寻求帮助。

JS代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

//indexjs

//获取应用实例

var app = getApp()

Page({

data: {

motto: '示例小程序-获取当前地理位、速度',

userInfo: {},

hasLocation:false,

location:{}

},

//事件处理函数

bindViewTap: function() {

wxnavigateTo({

url: '/logs/logs'

})

},

onLoad: function () {

consolelog('onLoad')

var that = this

//调用应用实例的方法获取全局数据

appgetUserInfo(function(userInfo){

//更新数据

thatsetData({

userInfo:userInfo

})

}),

wxgetLocation( {

success: function( res ) {

consolelog( res )

thatsetData( {

hasLocation: true,

location: {

longitude: reslongitude,

latitude: reslatitude

}

})

}

})

}

})

indexwxml

1

2

3

4

5

6

7

8

9

10

11

12

<!--indexwxml-->

<view class="container">

<view bindtap="bindViewTap" class="userinfo">

<image class="userinfo-avatar" src="{{userInfoavatarUrl}}" background-size="cover"></image>

<text class="userinfo-nickname">{{userInfonickName}}</text>

</view>

<view class="usermotto">

<!-- <text class="user-motto">{{motto}}\n</text>-->

<text>经度:{{locationlongitude}}\n</text>

<text>纬度:{{locationlatitude}}</text>

</view>

</view>

运行效果

以上就是关于小程序如何给一维索引数组添加key标识符全部的内容,包括:小程序如何给一维索引数组添加key标识符、微信小程序为什么获取不到for循环的item、微信小程序开发工具怎么使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9607742.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存