批量渲染数组(元素为react组件)的方法

本文介绍了如何批量渲染数组中的React组件元素,强调了在渲染过程中需要注意为数组元素添加key属性,以及确保第一个元素是一个React实例而非函数。提供了一段参考代码以帮助理解此过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一种实现批量渲染对象元素(元素为react组件)的方法
一种使用批量渲染 数组(元素为react组件)的方法
思为:可直接对象一个数组进行渲染输出,前提是,数组元素应为react组件

参考代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 实例</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="example"></div>

<script type="text/babel">

function HelloMessage(props) {
    return <h1>Hello World!</h1>;
}
function HelloMessage2(props) {
    return <h1>Hello World!</h1>;
}
const coms = {HelloMessage, HelloMessage2}
function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    <li key={number.toString()}>
      {number}
    </li>
  );
  const tmps = [];
  for(let key in coms) {
  	const Comp = coms[key];
	tmps.push(<Comp key={key} />);
  }
  console.log(tmps)
  return (
    <ul>{tmps}</ul>
  );
}

const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
  <NumberList numbers={numbers} />,
  document.getElementById('example')
);
</script>

</body>
</html>

需要注意的坑

1、list元素需要加下key属性
2、render的第一个元素应为一个React实例,而不是某个方法即:

const com = <div>Hello</div>
const Hello = (props) =>{
   return (<div>Hello</div>)
}
render(com, div)         // r1.正解
render(<Hello />, div)   // r2.正解 
render(Hello, div)       //  r3. 报错

r3 将报如下错

Exception: Warning: Functions are not valid as a React child. This may happen if you return a …

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值