2017-08-01 60 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價值得到任何信息,反正)。