如何在反射中将输入值设置为当天?

How to set input value to current day in reflex?

我正在使用 reflex-platformobelisk。 这是我获取当前日期的前端代码

pb <- getPostBuild
postBuildTime <- performEvent $ pb $> liftIO getCurrentTime
let today = Text.pack . formatTime defaultTimeLocale "%F" <$> postBuildTime

我可以通过输入

来确认这是否有效
dynText =<< holdDyn "loading" today

它甚至不会一瞬间显示“正在加载”,而是在浏览器中按预期显示“2021-03-26”(Google Chrome)。

但是,尝试将 today 事件放入 <input> 中是行不通的。这是代码:

foo <- inputElement $ def & inputElementConfig_setValue .~ today

<input> 保持空白。

更奇怪:在我的实际代码中,<input> 通过 inputElementConfig_initialValue .~ "BAAAR" 有一个初始值,它也没有显示。然而创建的动态文本就像

dynText =<< holdDyn "" foo

确实会在一瞬间显示“BAAAR”。


为了平息任何偏执狂,我用一个简单的按钮测试了 inputElementConfig_setValue,效果很好。 IE。我可以通过单击按钮来设置 <input> 的值。

所以 postBuildTime 事件有效,inputElementConfig_setValue 有效,但两者的组合使 <input> 留空。

编辑

最小示例,包括如何 运行 和结果截图的说明:

https://github.com/rubenmoor/reflex-bug-pbtime

https://github.com/reflex-frp/reflex-dom/commit/93f0f4bd00e1dc871d193d7d53d5d7f2dbb518af

看起来这是一个错误,已在 reflex-dom 中修复。