微信小程序进行条件渲染时出错.
wxml部分:
<block wx:if=" {{name}} == '未填写' ">
<view class="title">
<view class="lose" bindtap="indexTitle1" >
姓名修改
<view class="line">view>
view>
view>
<view class="input">
<input type="text" bindchange="name_change" value="{{name}}" />
view>
block>
js部分:
data: {
name:'未填写',
},
onLoad(options) {
//获取个人信息
var that = this;
wx.request({
url: 'https://mockapi.eolink.com/BXKX2X3656ec8f8e16eebf85c32070b3619376f6feb91b6/user/getUserInformation',
method: 'GET',
data: {
openID: that.data.openid,
},
success: res => {
console.log(res)
that.setData({
nick_name:res.data.nick_name,
headImg: res.data.avatar_url,
name: res.data.name,
school: res.data.school,
phone_number: res.data.phone_number,
sex: res.data.sex,
yuanxi: res.data.yuanxi,
email:res.data.email,
major:res.data.major,
bankCard_number:res.data.bankCard_number,
})
}
})
},
页面渲染为:
name肯定是获取到了,值为昵称,但不知道为什么这一块还是渲染出来了。
望采纳。。
你没有写else,可参考这篇文章修改:
https://blog.csdn.net/u011733020/article/details/108281436
根据代码和页面渲染的情况来看,可能是在 onLoad 函数中获取到了 res.data.name 的值并更新到 name 的数据属性中后,小程序并没有自动更新页面上 wx:if="{{name}} == '未填写'" 的条件渲染。这可能是因为小程序中数据绑定的更新是异步的,所以需要手动调用 this.setData() 方法来更新视图。您可以在获取到 res.data.name 后,手动调用 this.setData() 方法来更新 name 属性,让小程序自动更新页面:
that.setData({
name: res.data.name,
}, () => {
console.log('更新后的name:', that.data.name);
});
注意,由于 setData() 方法是异步的,为了确保更新后的 name 数据属性已经更新完成,建议在 setData() 方法的回调函数中打印一下 name 的值,以确认更新是否成功。