收藏
回答

获取用户信息的相关问题

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

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可以取到后台的用户信息,但是页面上显示不出来,是怎么回事呢?望大家给予解答,谢谢




最后一次编辑于  2018-03-02  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

10 个回答

  • 会微笑的糖果🌸
    会微笑的糖果🌸
    2018-03-05

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


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


    2018-03-05
    赞同
    回复
  • 赵青山
    赵青山
    2018-03-05

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

    2018-03-05
    赞同
    回复
  • 会微笑的糖果🌸
    会微笑的糖果🌸
    2018-03-05

    回复7楼:

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

    2018-03-05
    赞同
    回复
  • 赵青山
    赵青山
    2018-03-02

    你想看到结果可以这样写

    <view class="userinfo">

    <view class='userinfo-box'>

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

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

    </block>

    </view>

    </view>


    2018-03-02
    赞同
    回复
  • 会微笑的糖果🌸
    会微笑的糖果🌸
    2018-03-02


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

    接口信息是这样的:


    2018-03-02
    赞同
    回复
  • 赵青山
    赵青山
    2018-03-02

    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

    })

    },




    2018-03-02
    赞同
    回复
  • 会微笑的糖果🌸
    会微笑的糖果🌸
    2018-03-02

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


    2018-03-02
    赞同
    回复
  • 赵青山
    赵青山
    2018-03-02

    uInfo改为userInfo

    2018-03-02
    赞同
    回复
  • 会微笑的糖果🌸
    会微笑的糖果🌸
    2018-03-02

    回复1楼:

    能具体说明一下吗

    2018-03-02
    赞同
    回复
  • 赵青山
    赵青山
    2018-03-02

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

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

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

            </block>

    uInfo写错了


    2018-03-02
    赞同
    回复