2

I am writing a simple Mithril component, given below is the code

var m = require("mithril")

var MyComponent = {
    view() {
        return <button>Hello world!</button>;
    }
};

export default MyComponent;

My problem is that in this scenario I am not using m as required, however when I remove this the app does not run, I get the following error

Uncaught ReferenceError: m is not defined(…)

tmp dev
  • 8,043
  • 16
  • 53
  • 108

1 Answers1

9

It complains when you remove the m = require("mithril") line because when the JSX is transformed it becomes invocations of m().

var m = require("mithril")

var MyComponent = {
    view() {
        return <button>Hello world!</button>;
    }
};

export default MyComponent;

becomes

var m = require("mithril");

var MyComponent = {
    view: function view() {
        return m(
            "button",
            null,
            "Hello world!"
        );
    }
};

exports.default = MyComponent;

You can see the JSX transform live on the babel REPL

Tivac
  • 2,553
  • 18
  • 21