2017-08-01 49 views
0

考虑从github,https://github.com/slamdata/purescript-halogen/blob/master/examples/basic/src/Button.purs#L42这个片段,它试图呈现一个HTML按钮使用卤素库。如何创建无状态和静态卤素组件?

render :: State -> H.ComponentHTML Query 
    render state = 
    let 
     label = if state then "On" else "Off" 
    in 
     HH.button 
     [ HP.title label 
     , HE.onClick (HE.input_ Toggle) 
     ] 
     [ HH.text label ] 

    eval :: Query ~> H.ComponentDSL State Query Message m 
    eval = case _ of 
    Toggle next -> do 
     state <- H.get 
     let nextState = not state 
     H.put nextState 
     H.raise $ Toggled nextState 
     pure next 
    IsOn reply -> do 
     state <- H.get 
     pure (reply state) 

是否有任何可能的方式获得最“裸机”的UI控件,只是呈现一个静态的UI组件,而不涉及国家?

+0

如果你想要一个没有任何状态的静态UI组件,可能根本就不需要卤素组件。你能不能把静态HTML呈现在父组件的位置上? – babelchips

回答

0

如何设置type State = Unit?然后你render功能看起来像

render :: State -> H.ComponentHTML Query 
render _ = [...] 

即忽略的参数(因为你不能出Unit价值得到任何信息,反正)。