获取用户信息的相关问题
发布于 5 年前 作者 caowei 6314 次浏览 来自 问答

想从后台接口中获取用户信息,如下是我写的程序:

wxml:

<view class=“userinfo”>

    <view class=‘userinfo-box’>

        <block wx:for="{{uInfo}}">

            <image bindtap="" class="" src="{{item.avatarUrl}}" background-size=“cover”></image>

            <view class="">{{item.nickName}}</view>

        </block>

    </view>

</view>

js:

onLoad: function () {

if (app.globalData.userInfo) {

this.setData({

userInfo: app.globalData.userInfo,

hasUserInfo: true

}),

console.log(this.data.userInfo)

wx.request({

url: http://api/user/1,

data: {

// nickName: this.data.userInfo.nickName,

// avatarUrl: this.data.userInfo.avatarUrl,

// gender: this.data.userInfo.gender,

// province: this.data.userInfo.province,

// city: this.data.userInfo.city,

// country: this.data.userInfo.country,

// phoneNumber: 1,

// purePhoneNumber: 2,

// countryCode: 3

},

header: {

‘content-type’: ‘multipart/form-data’ // 默认值

}, // 设置请求的 header

success: function (res) {

// success

console.log(res.data.data)

uInfo:res.data.data

},

fail: function () {

// fail

},

complete: function () {

// complete

}

})

} else if (this.data.canIUse) {

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回

// 所以此处加入 callback 以防止这种情况

app.userInfoReadyCallback = res => {

this.setData({

userInfo: res.userInfo,

hasUserInfo: true

})

}

} else {

// 在没有 open-type=getUserInfo 版本的兼容处理

wx.getUserInfo({

success: res => {

app.globalData.userInfo = res.userInfo

this.setData({

userInfo: res.userInfo,

hasUserInfo: true

})

}

})

}

},

但是现在uInfo可以取到后台的用户信息,但是页面上显示不出来,是怎么回事呢?望大家给予解答,谢谢

10 回复

回复1楼:

能具体说明一下吗

回复7楼:

能解释一下这种写法的意思吗?谢谢

你想看到结果可以这样写

<view class=“userinfo”>

<view class=‘userinfo-box’>

<block wx:for="{{uInfo}}">

<view>{{index}}==>{{item}}</view>

</block>

</view>

</view>

但是我想取得是接口中的用户信息

uInfo改为userInfo

但是我得到的是这样的结果:

我想实现的效果是在红色区域显示出用户头像和用户名,这个用户头像和用户名是从后台接口中获取出来的,这个该怎么实现呢?接口中的信息是这样的:

var that = this;

wx.request({

url: 'http://api/user/1',

data: {

// nickName: this.data.userInfo.nickName,

// avatarUrl: this.data.userInfo.avatarUrl,

// gender: this.data.userInfo.gender,

// province: this.data.userInfo.province,

// city: this.data.userInfo.city,

// country: this.data.userInfo.country,

// phoneNumber: 1,

// purePhoneNumber: 2,

// countryCode: 3

},

header: {

'content-type''multipart/form-data' // 默认值

}, // 设置请求的 header

success: function (res) {

// success

console.log(res.data.data)

that.setData({

uInfo:res.data.data

})

},

就是遍历对象而已,index是key,item是value

按照你的写了,为什么没循环出值呢?

接口信息是这样的:

<block wx:for="{{uInfo}}">

            <image bindtap="" class="" src="{{item.avatarUrl}}" background-size="cover"></image>

            <view class="">{{item.nickName}}</view>

        </block>

uInfo写错了

回到顶部