我的网页中有一个顶级组件,它聚合了其他组件。现在,我需要一个组件仅在按下按钮时渲染,即在我的 View 模型中设置一个标志。那么,我应该如何使用我的顶级组件呢? 我是否应该根据标志的值使用 if else 条件,而不是在顶层包含隐藏组件。
toplevel.view = {
show_comp() ? [comp1, comp2, hiddencomp] : [comp1, comp2]
}
这里我根据 show_comp() 的值渲染隐藏组件。这是惯用的方法还是我可以做得更好? 另外,我在警告之一中发现 View 不应返回虚拟 dom 对象,就像我在上面的代码中返回的那样。那么,我会遇到上述代码的问题吗?
谢谢
最佳答案
你应该没问题。更清晰的表达方式是:
toplevel.view = {
return [comp1, comp2, show_comp ? hiddencomp : null]
}
您提到的“警告”没有多大意义 - View 必须返回虚拟 DOM 对象才能渲染任何内容:嵌套组件必须返回单个根节点(包含您选择的内容),并且不能直接返回节点数组 - 但这对于顶级组件来说很好。
关于javascript - 聚合 Mithril 中的成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114742/