好的,这是我使用 Phil 的Initializer
提示的方法:
编写一个真正关注元素的 JavaScript 函数。
exports.setFocusImpl = function(elemId) {
return function() {
document.getElementById(elemId).focus();
};
};
菲菲吧。
foreign import data FOCUS :: !
foreign import setFocusImpl :: forall e. Fn1 String (Eff (focus :: FOCUS | e) Unit)
setFocus :: forall e. String -> Eff (focus :: FOCUS | e) Unit
setFocus = runFn1 setFocusImpl
然后使用setFocus
初始化器中的函数。
H.input
[ A.id_ "inputField"
, A.Initializer do
liftEff $ setFocus "inputField"
pure DoNothing
] [ ]
请注意,我使用的是旧版本的卤素,其中签名仍然是旧版本(在 30e8b2c7 中定义Initializer
)。