下了mathjs的包,在vue文件里导入 import math from 'mathjs'
onLoad生命周期函数打印math是undefined,请问要怎样才能拿到math
- 发布:2024-05-21 11:03
- 更新:2024-05-23 19:35
- 阅读:205
最佳回复
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
你还是没有提供完整项目信息,不清楚你是 vue2/vue3,运行到何种平台。
我使用 hbuiderx 运行 vue3 项目到 web 平台上,hbuilderx 运行 vue2。cli 使用 vue2/vue3 均正常渲染,你使用下面代码
import {
atan2, chain, derivative, e, evaluate, log, pi, pow, round, sqrt,add
} from 'mathjs'
onLoad(() => {
console.log(add(1,2));
console.log(add(.1,.2));
console.log(round(e, 3)); // 2.718
console.log(atan2(3, -3) / pi); // 0.75
console.log(log(10000, 10)); // 4
console.log(evaluate('12 / (2.3 + 0.7)'));
// chaining
// 14
console.log(chain(3)
.add(4)
.multiply(2)
.done())
观察控制台可以正常打印。
你提到的其他技术问题,不属于 uniapp 的问题,我这里做个简单补充,mathjs 更多的是封装了常见的数学计算
官方是这样回答的:
在后台,math.js只是使用常规JavaScript来执行所有内容,所以没有魔法。
如果你需要精准计算 0.1+0.2,可以参考
https://github.com/josdejong/mathjs/issues/25
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
请补充更多项目信息,是 cli 还是 hbuiderx ,选择的是 vue2 还是 vue3,运营到何种平台,哪家小程序还是 web 还是 app,上传 demo 工程有助于定位和验证你的问题
1***@qq.com - 隔壁小王同学
应该要这样处理
const math = require('mathjs') 或者 import * as math from 'mathjs'。
主要原因是mathjs使用了commonjs语法,如果用esmodule的方式就是 import * as ...
-
SadAngel (作者)
const math = require('mathjs') 或者 import * as math from 'mathjs'
这样能导出来,但是里面的方法没有用是咋回事,math.add(0.1,0.2) 还是不等于0.32024-05-22 15:32
SadAngel (作者)
vue2,运行到web
2024-05-23 10:57
DCloud_UNI_OttoJi
回复 SadAngel: 我测试了 vue2+cli /hx+vue2 运行上面案例都可以正常运行,你可以尝试升级最新版本 huibderX 或者升级最新版本依赖再试一下
2024-05-23 19:35
SadAngel (作者)
回复 DCloud_UNI_OttoJi: 我把HBuilderX卸载重装了,可以了
2024-05-24 10:06
DCloud_UNI_OttoJi
回复 SadAngel: 可能还是有地方没做好,能先解决你的问题就行
2024-05-24 11:45