如何定义可重用常量?

时间:2018-05-04 01:13:46

标签: reason reason-react

我有一个Reason React组件,如下所示:

/* MyComponent.re */

let make = _children => {
    ...component,

    reducer: (action, state) => {
        switch (action) {
        | KeyDown(key) => switch (key) {
          | 13 => ReasonReact.Update(...)
          | _ => ReasonReact.NoUpdate
          }
        }
    },

    render: self => {
        <input _type="text" value=self.state.text
          onKeyDown=(event => self.send(KeyDown(ReactEventRe.Keyboard.keyCode(event)))) />
    }
};

现在我尝试将数字13重构为一个单独的文件:

/* Keys.re */

let enter = 13;

但我无法在 MyComponent.re 中的Keys.enter语句中使用switch。我得到的错误是:

Error: 275: <UNKNOWN SYNTAX ERROR>

我还尝试通过添加以下内容将模块直接包含在 MyComponent.re 中:

module Keys = {
    let enter = 13;
};

位于顶部,但仍然会出现同样的错误。

我对模块如何工作的理解必须是错误的。完成我想要做的事情的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

我不认为这是module如何定义的问题。

您可以像这样进行切换:

switch (key) {
| key when key === Keys.enter => ReasonReact.Update(...)
| _ => ReasonReact.NoUpdate
}