HalogenのuseState
useStateを使った感じ
code:purs(hs)
Hook.do
width /\ widthId <- Hooks.useState Nothing
初期値を渡す
ここではたまたまNothingだっただけmrsekut.icon
widthがstate
wdithIdは
Hooks.putなどに適用することで、setWidth的なものになる
イメージ的には、setWidth = Hooks.put widthId
putの他にも, getやmodify, modify_などもある
State Monadと同じ
ここでsetHogeみたいな関数を使いたい場合は、
useStateFnを使うと良い
code:purs(hs)
manyStates = Hooks.do
age /\ modifyAge <- useStateFn Hooks.modify_ 42
fruit /\ setFruit <- useStateFn Hooks.put "banana"
let
handler :: HookM _ Unit
handler = do
modifyAge \n -> n + 10
setFruit "strawberry"
困ることないだろうし、使って良さそうmrsekut.icon
強いて言えば、初期化時に状態を変更する関数(modifyとか)を渡さないといけないのがめんどいが、defaultよりはマシな感じがする