2
Clojure의 Hiccup과 같은 데이터 구조에서 조건부 메뉴 목록을 우아하게 렌더링하는 방법은 무엇입니까? 내 templating 기능은 into
에 대한 호출로 산재 해 버리고 자연스럽게 읽지 않습니다.Clojure에서 조건부로 Hiccup 데이터 구조를 해제하는 방법
원하는 결과 : 내가 if
의 개인 항목을 넣으면
[:div.menu
[:div.item "Home"]
[:div.item "Private"]
[:div.item "Private"]
[:div.item "Public"]
, 나는 아직도 반환 된 벡터를 풀다, 또는 nil
다룰 필요하므로이 작동하지 않습니다
[:div.menu
[:div.item "Home"]
(if authenticated?
[[:div.item "Private"]
[:div.item "Private"]])
[:div.item "Public"]]
(into [:div.menu] ...)
을 사용할 수 있고 항목 목록을 전달할 수 있지만 읽기가 힘들고 자연스럽게 읽지 않습니다. 나는이 표현으로 끝났다 :
(-> [:div.menu
[:div.item "Home"]]
(into (if (auth/authenticated?)
[[:div.item "Private"]
[:div.item "Private"]]
(into [[:div.item "Public"]]))
더 좋은 방법이 있습니까?
이 방법의 단점은 당신이 시약을 사용하는 경우 또는 React 기반의 라이브러리를 사용하면 고유 한 키 경고를 얻을 수 있습니다. –