我们需要管理Elm中单选按钮的状态吗?
我指的是这个例子。我看不到任何地方可以管理按钮的状态 在我自己的小榆树项目中,我需要做如下事情我们需要管理Elm中单选按钮的状态吗?,elm,Elm,我指的是这个例子。我看不到任何地方可以管理按钮的状态 在我自己的小榆树项目中,我需要做如下事情 label [] [ input [ type_ "radio" , checked (model.choosenSize == size) , onClick (SetSize size) ] [] , text (sizeToString size) ] 如果不管理checked属性,单击该属性后,所有单选按
label []
[ input
[ type_ "radio"
, checked (model.choosenSize == size)
, onClick (SetSize size)
] []
, text (sizeToString size)
]
如果不管理checked
属性,单击该属性后,所有单选按钮都将保持选中状态
那么,这个例子的魔力是什么呢?您所指的例子非常简单。它不显式地管理按钮的状态。相反,它们的状态由浏览器管理。当然,在实际应用程序中,您最好显式地管理它。比如:
view : Model -> Html Msg
view model =
div []
[ fieldset []
[ radio "Small" (model.fontSize == Small) (SwitchTo Small)
, radio "Medium" (model.fontSize == Medium) (SwitchTo Medium)
, radio "Large" (model.fontSize == Large) (SwitchTo Large)
]
, Markdown.toHtml [ sizeToStyle model.fontSize ] model.content
]
radio : String -> Bool -> msg -> Html msg
radio value isChecked msg =
label
[ style [("padding", "20px")]
]
[ input [ type_ "radio", checked isChecked, name "font-size", onClick msg ] []
, text value
]
(我在
radio
中添加了Bool
参数)您所指的示例非常简单。它不显式地管理按钮的状态。相反,它们的状态由浏览器管理。当然,在实际应用程序中,您最好显式地管理它。比如:
view : Model -> Html Msg
view model =
div []
[ fieldset []
[ radio "Small" (model.fontSize == Small) (SwitchTo Small)
, radio "Medium" (model.fontSize == Medium) (SwitchTo Medium)
, radio "Large" (model.fontSize == Large) (SwitchTo Large)
]
, Markdown.toHtml [ sizeToStyle model.fontSize ] model.content
]
radio : String -> Bool -> msg -> Html msg
radio value isChecked msg =
label
[ style [("padding", "20px")]
]
[ input [ type_ "radio", checked isChecked, name "font-size", onClick msg ] []
, text value
]
(我在
无线电
中添加了Bool
参数)如果向所有“分组”无线电元素添加名称
属性,则web浏览器一次只允许选择一个。通过管理模型中的“已检查”状态,可以在Elm中实现同样的效果。但是,如果您不在Elm中管理它们的状态,Elm将无法“读取”当前处于活动状态的元素。如果您向所有“分组”无线电元素添加name
属性,则web浏览器一次只允许选择一个。通过管理模型中的“已检查”状态,可以在Elm中实现同样的效果。但是,如果您不在Elm中管理它们的状态,Elm将无法“读取”当前处于活动状态的状态。