getApp() 获取不到里面的的方法?
发布于 7 年前 作者 jingbai 816 次浏览 来自 官方Issues
// pages/index/user_info.js
var app = getApp();
Page({

/**
* 页面的初始数据
*/
data: {
user: {}, // 用户详情
psa: [], // 省市区
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
console.log(app);
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {

},

/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
var that = this;
if (app.check_login()) {
that.handler_data();
} else {
app.call_back_fn = function () {
that.handler_data();
}
app.login();
}
},

/**
* 处理数据
*/
handler_data: function () {
var that = this;

that.get_user();
},

/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return app.share_path
},

/**
* 更新用户数据
*/
get_user: function () {
var that = this;
app.get_ajax('api/user/index', {
user_id: app.user_id
}, function (res, status) {
if (status == 200) {
// 设置省/市/区
if (res.province && res.city && res.area) {
that.data.psa = [res.province, res.city, res.area];
}
that.data.user = res;
that.setData({
user: that.data.user,
psa: that.data.psa
})
}
});
},

/**
* 设置省/市/区
*/
set_psa: function(e) {
var that = this;
that.data.psa = e.detail.value;
that.setData({
psa: that.data.psa
})
},

/**
* 提交成功
*/
submit_data: function (e) {
var that = this;
var form_data = e.detail.value;
form_data.user_id = app.user_id;
form_data.type = that.data.type;

// 判断
if (form_data.real_name == '') {
app.basic_dialog('未填写', '请填写真实姓名');
return false;
}
if (form_data.card_no == '') {
app.basic_dialog('未填写', '请填写身份证号码');
return false;
}
if (form_data.mobile == '') {
app.basic_dialog('未填写', '请填写手机号码');
return false;
}
if (form_data.mobile.length != 11) {
app.basic_dialog('填写错误', '手机号码长度不正确');
return false;
}
if (that.data.psa.length == 0) {
app.basic_dialog('未选择', '请选择您所在的省市区');
return false;
}
form_data.province = that.data.psa[0];
form_data.city = that.data.psa[1];
form_data.area = that.data.psa[2];

if (form_data.address == '') {
app.basic_dialog('未填写', '请填写详细地址');
return false;
}

// 开始加载
if (that.data.loading == true) {
return false;
}
app.show_nav_loading();
that.data.loading = true;

// 提交数据
app.post_ajax('api/User/set_info', form_data, function (id, status) {
if (status == 200) {
app.toast_ok('设置成功');
app.close_nav_loading();
that.data.loading = false;
} else {
app.basic_dialog('提交失败', res, '关闭', function () {
app.close_nav_loading();
that.data.loading = false;
});
}
})
},

})

现在的问题:有一些页面,真机上没有问题,但是开发工具上保存,上面截图就是这样的, 无法调用app.js 文件里面的内容;

app.js check_login 方法是这样写的;

check_login: function() {
var that = this;
return that.user_id ? true : false;
}, 

还有一些页面是,开发工具没有问题, 但是真机上有错误;很尴尬,其他页面都一样,写法都一样,没有问题;

经过测试发现在不同的页面,直接打印 getApp() 打印出来的对象还不一样,有人说是开发工具问题,需要重新安装,但是也重新安装啦, 还是有问题;

其他人的开发工具也有问题,现在无法定位到底是什么问题;

小程序已经上线了: 小熊猫登记小助手, app ID:wx89b17c33a96efa79

电话:18612534550

2 回复

经过确定 确实在子页面上, 获取app = getApp() 根本就打印出来,是空的对象,其他复制的内容都没有

能否把你这个单页的需求做个代码片段,贴下来试更难找问题了。

回到顶部