3 回答
TA贡献1827条经验 获得超8个赞
我有同样的问题,我解决了如下:
我做了一个改变:
handleEqual = () => {
this.setState({ input: math.eval(this.state.input) });
};
eval在哪里更改evaluate
handleEqual = () => {
this.setState({ input: math.evaluate(this.state.input) });
};
现在它完美地工作了。我希望这对你有很大帮助
TA贡献1946条经验 获得超3个赞
导入为评估
import * as math from 'mathjs';
console.log(math.evaluate('2 + 3'))
// Or
import {evaluate } from 'mathjs';
console.log(evaluate('2 + 3'))
TA贡献1825条经验 获得超4个赞
我有完全相同的问题,和你一样,我做了很多来解决它,但都失败了。我最终如何解决它如下:首先确保你已经从命令行下载了 mathjs: npm install mathjs; 并且在你的反应代码的顶部,放置语句: import * as math from 'mathjs'; (我可以从您的代码中看到您所做的后者)。
现在关键的第二步是,不要使用 math.eval(expr) 或 math.evaluate(expr) 来评估您的表达式,而是使用 parse,compile 与 evaluate 结合使用,如下例所示:
const node1= math.parse('2 + 3');
const code1= node1.compile();
code1.evaluate(); // 5
这是我经过多次失败的努力后最终尝试的方式,但它确实有效。这是 mathjs 库中列出的评估表达式的另一种方法。我知道这个问题被问到已经有几个月了,但这个解决方案在未来仍然可以帮助某人。
添加回答
举报