ReactJS:仅当数组有值时才呈现元素
ReactJS : Only render element if array has values
如果数组有值并且存在,我只想将数组值呈现为元素。在我的例子中,有一个颜色数组,用户可以设置当前color_theme,由其索引表示。开始时不应选择color_theme。我的渲染函数将尝试渲染当前color_color_theme,但current_color_index没有。如何在渲染之前检查是否存在现存的彩色血红素?我无法在重新加载之前编写返回,因为还有其他元素必须渲染。
data = {
"colorthemes" : [ ["blue","red"], ["black","grey"] ],
"current_color_index": "",
....//more
}
render: function() {
return (
<div>
<ul>
//other stuff is rendering
</ul>
<ul>
{this.state.data.colorthemes[this.state.data.current_color_index].map(function(item, i) {
....
}, this)}
</ul>
</div>
只需在jsx
内使用 if 条件,例如
{
condition ?
<MyRenderElement /> :
null
}
如果不满足条件,则此代码块不会呈现任何内容。
建议:我建议您使用合理的默认值,而不是使用这样的 if 条件。帮助您保留较少的控制流路径和较少的错误。
我认为你可以用更简单的方式做到这一点,比如:
{ condition && <MyRenderElement/> }
我想说这对你的情况更有意义。
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- 用于检查数组中是否存在元素的javascript自定义方法
- 在数组中的一个元素上设置多个值
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 数组中元素(字符串)的总和
- javascript数组元素是否知道其封闭数组
- 查找数组javascript中包含的元素类型
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- 一些元素没有从数组中删除
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 元素不会添加到Javascript数组中
- 如何从另一个带下划线的数组中筛选带元素的数组
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- Js接受两个值之间的元素(数组)