Реактивный калькулятор - Equal Sign Logic - PullRequest
0 голосов
/ 29 августа 2018

Привет, ребята, мне нужна помощь с тестовым проектом для реактивного калькулятора, над которым я работаю для freecodecamp, вот мой код: https://codepen.io/mav1283/pen/VGLxJy?editors=0010

evalEquation(){
    const {equation, calculations, output,operatorFlag,equalsFlag} = this.state;
    const finalEquation = equation.replace(/\x/g,'*').replace(/\÷/g,'/');
    const answer = String(math.eval(finalEquation));

    if(equalsFlag === false){
      this.setState({
        equation: answer,
        output: answer,
        equalsFlag: true
      });
    } 

    this.playAudio();
  }

Я выяснил, как вычислять входное уравнение каждый раз, когда я нажимаю на знак равенства, но мне трудно пытаться решить или установить логику так, чтобы каждый раз, когда я вводил число, он заменял исходное значение, но если я введу оператор, он будет повторно использовать старое вычисленное значение

Я еще не добавил функции% и положительные / отрицательные функции, я добавлю их, как только получу логику за знаком равенства. Также показ состояния выше является временным, поэтому я могу видеть изменения каждого действия. Нужна помощь, спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

Итак, вы уже сделали большую часть работы, чтобы получить то, что вы хотите. Я не рассмотрел ваш код подробно, я просто согнул его, чтобы сделать то, что вы хотели, не понимая его и не проверяя наличие побочных эффектов, но это должно дать вам отправную точку: Обновленный кодовый код

Кроме того, классная функция, так как вы используете Babel. Вам не нужно явно связывать this со всеми вашими функциями класса. Вы можете просто использовать функции стрелок класса. Смотрите добавленную мной функцию resetState.

...