<view class="signList" wx:for="{{signList}}" wx:for-item="item" wx:key="index" wx:for-index="index"> <navigator bindtap="navigateTo" url="item.url"> <view class="chapter">{{item.rect}} <view class="title">{{item.title}}</view> </view> </navigator> </view> navigateTo(){ wx.navigateTo({ url: 'item.url', }) } 这个写法为什么跳转不到相应的页面?
时间: 2023-07-19 12:22:46 浏览: 453
这是因为在 `navigateTo` 函数中,`url` 的值被写死为了 `"item.url"`,并没有获取到当前点击的矩形对应的 `url` 值。可以通过 `event.currentTarget.dataset` 获取当前点击的矩形对应的数据,然后从中获取到 `url` 的值。修改代码如下:
```
<view class="signList" wx:for="{{signList}}" wx:for-item="item" wx:key="index" wx:for-index="index">
<navigator bindtap="navigateTo" url="{{item.url}}" data-index="{{index}}">
<view class="chapter">
<view class="title">{{item.title}}</view>
</view>
</navigator>
</view>
```
在 `navigateTo` 函数中,通过 `event.currentTarget.dataset` 获取当前点击的矩形对应的数据,然后从中获取到 `url` 的值。
```
navigateTo(event) {
const index = event.currentTarget.dataset.index;
const url = this.data.signList[index].url;
wx.navigateTo({
url: url
});
}
```
这样就可以跳转到相应的页面了。
阅读全文