Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mithril.js:什么是;组件模板必须返回虚拟元素,而不是数组、字符串等。”;什么意思?_Javascript_Mithril.js - Fatal编程技术网

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在重写的组件视图中,情况将不再如此