SadAngel
SadAngel
  • 发布:2024-05-21 11:03
  • 更新:2024-05-23 19:35
  • 阅读:205

uniapp导入mathjs

分类:uni-app

下了mathjs的包,在vue文件里导入 import math from 'mathjs'
onLoad生命周期函数打印math是undefined,请问要怎样才能拿到math

2024-05-21 11:03 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_OttoJi

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

  • 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

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

请补充更多项目信息,是 cli 还是 hbuiderx ,选择的是 vue2 还是 vue3,运营到何种平台,哪家小程序还是 web 还是 app,上传 demo 工程有助于定位和验证你的问题

  • SadAngel (作者)

    已经补充了相关信息,请问有什么发现吗

    2024-05-22 09:20

SadAngel

SadAngel (作者)

hbuilderx 4.15版本,新建uniapp项目,安装mathjs包,首页导入math 查看为undefined

1***@qq.com

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.3

    2024-05-22 15:32

要回复问题请先登录注册