在ReactJS中,我可以声明一个组件数组吗?并返回某些组件

时间:2015-12-07 08:38:52

标签: reactjs

我可以声明一个组件数组吗?并返回某些组件...... 这可能吗??

ES6:

import React from 'react';
import Component1 from './Component1';
import Component2 from './Component2';</br>

export default App extends React.Component {
  render() {
     const myComponents = [`<Component1 />`,`<Component2 />`];

     return (
       {myComponents.map((component, index) => {
         return component[index] === index;
       })}
    );
  }
}

建议请...非常感谢

1 个答案:

答案 0 :(得分:2)

当然可以将它们存储在一个数组中。请记住,JSX只是常规Javascript的语法糖 - 它不是魔术,它不是字符串,所以不需要引用它。

const myComponents = [<Component1 />, <Component2 />];

上面的JSX只是一种较短的写法:

var myComponents = [
  React.createElement(Component1, null),
  React.createElement(Component2, null)
];

你在渲染中返回的值会给你带来问题。

mycomponents.map((component, index) => {
  // this will always return false
  // because objects are not numbers
  return component[index] === index;
});

对map的调用总是会返回一个false值数组。如果你试图渲染它们会抛出错误。

相反,您可以只渲染整个组件数组。

return (
  <div>{ myComponents }</div>
);