我在尝试使用数据数组呈现<ul>
元素时遇到问题。在的下面的代码中,console.log
可以正常工作,但列表项未出现。
var Main = React.createClass({
getInitialState: function(){
return {
data: dataRecent
}
},
render: function(){
return (
<div>
<ul>
{
this.state.data.map(function(item, i){
console.log('test');
<li>Test</li>
})
}
</ul>
</div>
)
}
});
ReactDOM.render(<Main />, document.getElementById('app'));
我究竟做错了什么?请随时指出并非最佳做法的任何内容。
GoshaArinich是正确的,您应该返回您的<li>
元素。但是,在这种情况下,您应该在浏览器控制台中收到讨厌的红色警告
数组或迭代器中的每个子代都应具有唯一的“键”道具。
因此,您需要在列表中添加“键”:
this.state.data.map(function(item, i){
console.log('test');
return <li key={i}>Test</li>
})
或console.log()
使用es6
箭头功能放下并做一个漂亮的oneliner
:
this.state.data.map((item,i) => <li key={i}>Test</li>)
重要更新 :
上面的答案正在解决当前的问题,但是正如Sergey在评论中提到的那样:如果要进行一些过滤和排序,则根据地图索引使用键是
BAD
。在这种情况下,请使用item.id
if(如果id
已存在),或仅为其生成唯一的ID。
问题内容: 我在弄清楚为什么我的应用程序执行无尽渲染时遇到问题。 在内部,我的有状态组件,我正在componentDidMount方法中调用redux动作(调用componentWillMount也可以进行无尽渲染) 在CoinCard中,我实际上不做任何事情(在Flat列表内注意CoinCard) 现在,当我控制台登录我的硬币卡渲染时,我可以 在此处* 看到 Inside rende的 无限日志
主要内容:React 实例,元素变量,React 实例,与运算符 &&,React 实例,三目运算符,阻止组件渲染,React 实例在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。 React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI。 先来看两个组件: 我们将创建一个 Greeting 组件,它会根据用户
主要内容:实例,实例,实例,实例元素是构成 React 应用的最小单位,它用于描述屏幕上输出的内容。 与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。 将元素渲染到 DOM 中 首先我们在一个 HTML 页面中添加一个 id="example" 的 <div>: 在此 div 中的所有内容都将由 React DOM 来管
问题内容: 我在渲染中添加了一个条件,突然它停止显示。这是我正在使用的代码。 我只想显示sdata中的4个项目。有人请帮忙。 问题答案: 您忘记了body中的元素,以及 i > = 5*之后的所有条目所需的元素。 * 这样写: 但我建议您使用而不是仅创建5个元素。 如果要使用,则首先使用 slice 并创建5个元素的子元素,然后在其上使用。 像这样:
问题内容: 是否可以从外部源获取HTML / JSX内容并在React中动态呈现它?在我们的例子中,我们想从Wordpress API中获取内容,并在客户端和服务器上都进行渲染(我们正在使用NextJS) 因此,Wordpress API返回一个JSON响应,其中包括一个content属性,该属性是一串HTML / JSX。内容看起来像这样。 因此,如您所见,它将是HTML和React组件/ JS
问题内容: 你能告诉我如何在react js中渲染列表吗?我喜欢这样 问题答案: 您可以通过两种方式进行操作: 第一: 第二: 直接在返回中编写map函数