<!--index.wxml-->
<view class="container">
<button bindtap="changeList">切换</button>
<view class="list">
<view class="list-item" wx:for="{{list}}" wx:key="{{index}}"><input type="{{item.type}}" /></view>
</view>
</view>
/**index.wxss**/
.list-item{
margin-top:20rpx;
}
.list-item input{
display: block;
width: 100%;
height:60rpx;
line-height: 60rpx;
font-size: 40rpx;
border:1px solid black;
}
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
list:[
{type:'digit',name:'测试'},
{type:'digit',name:'测试'},
{type:'number',name:'测试'},
{type:'digit',name:'测试'},
{type:'number',name:'测试'},
]
},
//事件处理函数
changeList(){
let list=this.data.list;
list.forEach(tmp=>{
tmp.type='number'
})
console.log(list);
this.setData({
list
})
},
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} 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
})
}
})
}
},
getUserInfo: function(e) {
console.log(e)
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})
demo复现问题:单机按钮,将表单类型从digit转化为number,数据是渲染成功了,但是真机调试,按钮键盘还是原来的digit,没有改为number,这是为什么
你还不如使用if判断,准备多个input
问题已知,我们尽快解决下