JavaScript Calculator - Can't start new calculation after old one

Tell us what’s happening:
I’m almost done with my calculator but I’ve encountered a bug I can’t figure out.

Basically I can pass every test except 14: ‘Pressing an operator immediately following “=” should start a new calculation that operates on the result of the previous evaluation.’

Your code so far
I’ll just include the logic to the program and exclude the display pieces. Happy to produce more if asked. Here are my methods:

const operators = /[+\-x*/]/g;
const letters = /[a-z]/i;
const letterX = /x/gi;
const incomplete = /[+\-/*x]$/;

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      display: "0",
      formula: "Push a button"
    };

    this.handleInput = this.handleInput.bind(this);
    this.handleClear = this.handleClear.bind(this);
    this.handleFormula = this.handleFormula.bind(this);
    this.evalForm = this.evalForm.bind(this);
  }

//Handles in put from operators
  handleOperator(e) {
    let newValue = this.state.display;
    if (incomplete.test(this.state.display)) {
      console.log("Replacing operator with new one");
      newValue = newValue.replace(operators, e);
      this.setState({ display: newValue });
    } else {
      console.log("handleOperator is concatenating");
      this.setState({ display: newValue + e });
      return;
    }
  }

  //Handles input from numbers
  handleInput(x) {
  
    //Checks if part of the formula is complete and the display needs to be reset
    let displayValue = this.state.display;
    console.log(
      "display is " + displayValue + " with a type of " + typeof displayValue
    );
    if (operators.test(displayValue)) {
      console.log(
        "Calling handleFormula().  Display is " +
          displayValue +
          " and x is " +
          x
      );
      this.handleFormula(displayValue, x);
    }
    //Doesn't allow for multiple starting 0s
    else if (displayValue === "0" && x === "0") {
      console.log("Multiple starting 0s not allowed");
      this.setState({ display: "0" });
      return;
    }
    //Removes the default 0 if preceding conditions aren't met
    else if (x !== "0" && x !== "." && displayValue === "0") {
      console.log("Removing default 0");
      this.setState({ display: x });
    }
    //Doesn't allow for consecutive decimals
    else if (displayValue.match(/\.{1,}/g) && x === ".") {
      console.log("Multiple decimals not allowed");
      return;
    }
    //Otherwise concat x to the string
    else {
      console.log(
        "handleInput is concatenating.  Display is " +
          displayValue +
          " and x is " +
          x
      );
      this.setState({ display: displayValue + x });
      return;
    }
  }

  //Clears the display and formula fields
  handleClear() {
    console.log("handleClear called");
    this.setState({ display: "0", formula: "0" });
    return;
  }

  //Moves the numbers and operators from the display to the formula box
  handleFormula(y, x) {
    console.log("handleFormula() called");
    if (letters.test(this.state.formula)) {
      console.log("handleFormula() cleared non-numbers");
      this.setState({ formula: y.replace(letterX, "*"), display: x });
    } else if (this.state.formula === "0") {
      console.log("handleFormula() cleared single 0");
      this.setState({ formula: y.replace(letterX, "*"), display: x });
    } else {
      console.log("handleFormula() is Concatenating");
      this.setState({
        formula: this.state.formula + y.replace(letterX, "*"),
        display: x
      });
    }
    return;
  }

  evalForm() {
    console.log("evalForm() called");
    if (this.state.formula === "0" || this.state.formula === "Push a button") {
      console.log("Incomplete formula, resetting");
      this.setState({ formula: "0", display: "0" });
      return;
    } else {
      //console.log(incomplete.test(this.state.display));
      if (incomplete.test(this.state.display)) {
        console.log("You must finish the expression to evaluate it");
        this.setState({ formula: "0", display: "0" });
        return;
      }
      let value = eval(
        this.state.formula.toString() + this.state.display.toString()
      ).toString();
      console.log("Value = " + value);
      this.setState({ display: value, formula: "0" });
      return;
    }
  }

handleOperator() is called when operators (+/-x) are pushed. handleInput() is called when numbers are pressed. handleClear() is called when clear is pressed. handleFormula() is only called from within handleInput(). evalForm() is called when “=” is pushed.
Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0.

Link to the challenge:

I’ve created a github repository if anyone wants to take a direct look at the code by cloning it for themselves. https://github.com/sandrockcstm/calculator