【发布时间】:2020-06-21 05:43:36
【问题描述】:
我收到以下错误,如果有人能指出我正确的方向,我会很高兴 :) 我尝试了不同的方法,但没有任何效果。
编译失败 ./src/App.jsx 尝试导入错误:“eval”未从“mathjs”导出(导入为“math”)。
import React, { Component } from 'react';
import './App.css';
import { Button } from './components/Button';
import { Input } from './components/Input';
import { ClearButton } from './components/ClearButton';
import * as math from 'mathjs';
class App extends Component {
constructor(props) {
super(props);
this.state = {
input: ""
};
}
addToInput = val => {
this.setState({input: this.state.input + val});
}
handleEqual = () => {
this.setState({input: math.eval(this.state.input)});
}
render() {
return (
<div className="app">
<div className="calc-wrapper">
<Input input={this.state.input}></Input>
<div className="row">
<Button handleClick={this.addToInput}>7</Button>
<Button handleClick={this.addToInput}>8</Button>
<Button handleClick={this.addToInput}>9</Button>
<Button handleClick={this.addToInput}>/</Button>
</div>
<div className="row">
<Button handleClick={this.addToInput}>4</Button>
<Button handleClick={this.addToInput}>5</Button>
<Button handleClick={this.addToInput}>6</Button>
<Button handleClick={this.addToInput}>X</Button>
</div>
<div className="row">
<Button handleClick={this.addToInput}>1</Button>
<Button handleClick={this.addToInput}>2</Button>
<Button handleClick={this.addToInput}>3</Button>
<Button handleClick={this.addToInput}>+</Button>
</div>
<div className="row">
<Button handleClick={this.addToInput}>.</Button>
<Button handleClick={this.addToInput}>0</Button>
<Button handleClick={() => this.handleEqual()}>=</Button>
<Button handleClick={this.addToInput}>-</Button>
</div>
<div className="row">
<ClearButton handleClear={ () => this.setState({input: "" })}>Clear</ClearButton>
</div>
</div>
</div>
);
}
}
export default App;
【问题讨论】:
-
链接到 lib mathjs。 eval 方法好像不存在。
-
不需要导入mathjs,直接用eval()函数代替math.eval即可。 java 脚本本身就提供了该功能。
-
这个问题解决了吗?下面有 2 个答案。
标签: javascript reactjs