Javascript Mithril.js:什么是;组件模板必须返回虚拟元素,而不是数组、字符串等。”;什么意思?
第一次尝试Javascript Mithril.js:什么是;组件模板必须返回虚拟元素,而不是数组、字符串等。”;什么意思?,javascript,mithril.js,Javascript,Mithril.js,第一次尝试mithril.js,如果这是一个简单的问题,请道歉。我收到一条错误消息 组件模板必须返回虚拟元素,而不是数组, 绳子等 当我在另一个组件中嵌套map()派生组件时 本质上,我试图创建一个类似以下简化示例的布局,其中地址标记来自ctrl.list()属性的map() <Layout> <Left/> <Right> <Address> <Address> </Right>
mithril.js
,如果这是一个简单的问题,请道歉。我收到一条错误消息
组件模板必须返回虚拟元素,而不是数组,
绳子等
当我在另一个组件中嵌套map()
派生组件时
本质上,我试图创建一个类似以下简化示例的布局,其中地址标记来自ctrl.list()
属性的map()
<Layout>
<Left/>
<Right>
<Address>
<Address>
</Right>
</Layout>
在Mithril v0.2.X中,嵌套组件(即另一个组件中的组件)不能返回节点数组1:它必须返回一个包含多个子节点的包装节点
您的代码似乎意外地违反了该规则,这是由于右侧
视图中的输入错误造成的:
return m('.right-col'),
ctrl.list().map(function(addr){
return m(Address, {addr: addr});
})
在伪代码中,这是返回{node},[list]
,其中{node}
被删除,视图返回未包装的[list]
,这会触发错误。应该是:
return m('.right-col',
ctrl.list().map(function(addr){
return m(Address, {addr: addr});
})
)
1在重写的组件视图中,情况将不再如此