4649关注16005浏览
你想反馈一个 Bug 还是 提一个需求?
反馈一个Bug
如果是 Bug:
* Bug 表现是什么?预期表现是什么?
Bug中,在一个this.setData()内反复设置变量,提取变量出现问题。需要连续运行三次函数才能解决这个问题。
预期运行一次函数就能得到
* 如何复现?
运行函数
* 提供一个最简复现 Demo
//js页面
// pages/index-jisuan-DianDaoZhiXian/index-jisuan-DianDaoZhiXian.js
Page({
/**
* 页面的初始数据
*/
data: {
x1: "",
y1: "",
x2: "",
y2: "",
x3: "",
y3: "",
chuiju: "",//垂距结果变量
x4: "",//结果x
y4: "",//结果y
A: "",//中间变量
B: "",//中间变量
C: "",//中间变量
},
/*以下为输入代码*/
zhiAXfun: function (e) {
this.setData({
x1: e.detail.value
})
},
zhiAYfun: function (e) {
this.setData({
y1: e.detail.value
})
},
zhiBXfun: function (e) {
this.setData({
x2: e.detail.value
})
},
zhiBYfun: function (e) {
this.setData({
y2: e.detail.value
})
},
Xfun: function (e) {
this.setData({
x3: e.detail.value
})
},
Yfun: function (e) {
this.setData({
y3: e.detail.value
})
},
/*以上为输入代码*/
jisuan: function (e) {
this.setData({
A: this.data.y2 - this.data.y1,
B: this.data.x1 - this.data.x2,
C: this.data.x2 * this.data.y1 - this.data.x1 * this.data.y2,
chuiju: ((this.data.A * this.data.x3 + this.data.B * this.data.y3 + this.data.C) / (Math.sqrt(this.data.A * this.data.A + this.data.B * this.data.B))).toFixed(3),
x4: ((this.data.B * this.data.B * this.data.x3 - this.data.A * this.data.B * this.data.y3 - this.data.A * this.data.C) / (this.data.A * this.data.A + this.data.B * this.data.B)).toFixed(3),
y4: ((-this.data.A * this.data.B * this.data.x3 + this.data.A * this.data.A * this.data.y3 - this.data.B * this.data.C) / (this.data.A * this.data.A + this.data.B * this.data.B)).toFixed(3),
jieguo: "垂距:" + this.data.chuiju + "垂点x:" + this.data.x4 + "垂点y:" + this.data.y4
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
&
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
Lucy十一
20人对此回答表示赞同
我是新手,我在data:里面不是已经定义了变量了吗?
展开200回复分享发布于 6年前评论(0)
收起评论
-
Maja
16人对此回答表示赞同
我想要赋值后的数据
展开160回复分享发布于 6年前评论(0)
收起评论
-
李美琳
13人对此回答表示赞同
chuiju:((this.data.A*this.data.x3+this.data.B*this.data.y3+this.data.C)/(Math.sqrt(this.data.A*this.data.A+this.data.B*this.data.B))).toFixed(3),这里的this.data.A、this.data.B、this.data.C你想要的是赋值前的还是赋值后的?
展开130回复分享发布于 6年前评论(0)
收起评论
-
Landon
12人对此回答表示赞同
没有其他编程经验吗?先定义好局部变量A、B、C、chuiju、x4、y4、jieguo,然后再
展开120回复分享发布于 6年前评论(0)
收起评论
-
Cat7
7人对此回答表示赞同
那应该怎么改呢?
展开70回复分享发布于 6年前评论(0)
收起评论
-
风里来雨里去
5人对此回答表示赞同
先定义变量,再用变量赋值
展开50回复分享发布于 6年前评论(0)
收起评论
-
锦鲤本鲤
4人对此回答表示赞同
那肯定不对啊
展开40回复分享发布于 6年前评论(0)
收起评论