如何定义可重用常量?
How to define reusable constants?
我有一个如下所示的 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 中的 switch
语句中使用 Keys.enter
。我得到的错误是:
Error: 275: <UNKNOWN SYNTAX ERROR>
我还尝试通过添加将模块直接包含在 MyComponent.re 中:
module Keys = {
let enter = 13;
};
在顶部,但仍然出现相同的错误。
我对模块如何工作的理解一定是不正确的。完成我想要做的事情的正确方法是什么?
我不认为 module
的定义方式有问题。
你可以这样切换:
switch (key) {
| key when key === Keys.enter => ReasonReact.Update(...)
| _ => ReasonReact.NoUpdate
}
我有一个如下所示的 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 中的 switch
语句中使用 Keys.enter
。我得到的错误是:
Error: 275: <UNKNOWN SYNTAX ERROR>
我还尝试通过添加将模块直接包含在 MyComponent.re 中:
module Keys = {
let enter = 13;
};
在顶部,但仍然出现相同的错误。
我对模块如何工作的理解一定是不正确的。完成我想要做的事情的正确方法是什么?
我不认为 module
的定义方式有问题。
你可以这样切换:
switch (key) {
| key when key === Keys.enter => ReasonReact.Update(...)
| _ => ReasonReact.NoUpdate
}