我有一个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;
};
位于顶部,但仍然会出现同样的错误。
我对模块如何工作的理解必须是错误的。完成我想要做的事情的正确方法是什么?
答案 0 :(得分:3)
我不认为这是module
如何定义的问题。
您可以像这样进行切换:
switch (key) {
| key when key === Keys.enter => ReasonReact.Update(...)
| _ => ReasonReact.NoUpdate
}