我有一些叫做stations的数据,它是一个包含对象的array.

stations : [
  {call:'station one',frequency:'000'},
  {call:'station two',frequency:'001'}
]

我想 for each 数组位置呈现一个ui组件.到目前为止我还能写

 var stationsArr = []
 for (var i = 0; i < this.data.stations.length; i++) {
     stationsArr.push(
         <div className="station">
             {this.data}
         </div>
     )
 }

然后渲染

render(){
 return (
   {stationsArr}
 )
}

问题是我要把所有的数据打印出来.我只想展示一把像{this.data.call}这样的 keys ,但它什么也不打印.

如何循环遍历这些数据,并为数组的每个位置返回一个新的UI元素?

推荐答案

可以将桩号列表映射到图元.

使用React>;=16,可以从同一组件返回多个元素,而不需要额外的html元素包装器.从16.2开始,有new syntax <>个程序可以创建片段.如果这不起作用或IDE不支持,可以使用<React.Fragment>.在16.0和16.2之间,可以使用非常简单的polyfill来表示片段.

试试下面的方法

// Modern syntax >= React 16.2.0
const Test = ({stations}) => (
  <>
    {stations.map(station => (
      <div key={station.call} className='station'>{station.call}</div>
    ))}
  </>
); 

// Modern syntax < React 16.2.0
// You need to wrap in an extra element like div here

const Test = ({stations}) => (
  <div>
    {stations.map(station => (
      <div className="station" key={station.call}>{station.call}</div>
    ))}
  </div>
); 

// old syntax
var Test = React.createClass({
    render: function() {
        var stationComponents = this.props.stations.map(function(station) {
            return <div className="station" key={station.call}>{station.call}</div>;
        });
        return <div>{stationComponents}</div>;
    }
});
 
var stations = [
  {call:'station one',frequency:'000'},
  {call:'station two',frequency:'001'}
]; 

ReactDOM.render(
  <div>
    <Test stations={stations} />
  </div>,
  document.getElementById('container')
);

不要忘记key属性!

https://jsfiddle.net/69z2wepo/14377/

Reactjs相关问答推荐

react 导致不必要的回归

我的组件在jsx文件中继续重新渲染

如何在useEffect中使用useParams()

Inbox Enum类型以React组件状态时出现TypScript错误

Firebase删除UserWithEmail AndPassword仅创建匿名用户

为什么Next.js 14无法解析页面路由路径?

如何在重新图表中更改悬停时的条形填充 colored颜色 ?

React中的useEffect钩子

为什么react日历时间轴项Renderprops 不能与useState挂钩一起使用?

有没有比;KeyableShell;组成部分

我可以同时使用 Gatsby 和 NEXT.JS 吗?

Reactjs:MUI5:MobileDateTimePicker API:如何自定义日历中的文本

无法在react 中向表中添加行

React Native 背景动画反转

如何在 React.js 中提取 PDF 的内容?

在 reactJS 中导航时页面重新加载

React:如何设置光标 Select

使用输入类型文本对 useState 和日期做出react

如何定制 React 热 toastr ?

使用 React 中的功能组件更改另一个组件的状态