相关文章推荐
好帅的排球  ·  关于React Server Compone ...·  3 月前    · 
听话的跑步鞋  ·  Day 14: React篇: ...·  1 月前    · 
活泼的红烧肉  ·  【Day11】 發生什麼事 - ...·  4 周前    · 
不开心的骆驼  ·  沈阳地铁10号线站点线路图(丁香湖-张沙布) ...·  6 月前    · 
长情的单车  ·  scenic-哔哩哔哩_Bilibili·  7 月前    · 
道上混的斑马  ·  友盟统计准确性如何? - 知乎·  2 年前    · 
月球上的镜子  ·  【Kaggle竞赛】迭代训练模型-腾讯云开发 ...·  2 年前    · 
开朗的长颈鹿  ·  转储java对象的属性-腾讯云开发者社区-腾讯云·  2 年前    · 
Code  ›  javascript - react render里面多次循环,怎么破 -
react
https://segmentfault.com/q/1010000004943884
性感的香蕉
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. javascript
  4. 问答详情

react render里面多次循环,怎么破

头像
cc_andy
134 2 8 14
发布于
2016-04-15
更新于
2016-04-15
render(){
        if(this.state.loading){
            return <Loading/>;
        }else{
            let [header={},bodyHtml='']=[this.state.articleDetail.header];
            bodyHtml=this.state.articleDetail.body.content.map(function (item1,index1) {
                bodyHtml+=<h4>{item1.firstTitle}</h4>;
                item1.firstTitleDes.map(function (item2,index2) {
                    bodyHtml+=<h6>{item2.secondTitle}</h6>;
                    item2.secondTitleDes.map(function (item3,index3) {
                        bodyHtml+=<p>{item3.describle}</p>;
                        bodyHtml+=<pre><code className={item3.codeType}>{item3.code}</code></pre>;
                return (bodyHtml);
            return (
                    <Head/>
                    <div className="container">
                        <header className="aticle-header">
                            <h2>{header.title}</h2>
                            <p>发表于&nbsp;&nbsp;{header.date}&nbsp;&nbsp;|&nbsp;&nbsp;in&nbsp;&nbsp; <Link to="/">{header.type}</Link></p>
                        </header>
                        <article className="aticle-body">{bodyHtml}</article>
    }
react.js javascript
阅读 13.3k
4 个回答
得票 最新
头像
qianjiahao
8.4k 6 31 33
发布于
2016-04-15

感觉要么就是你把处理数据的这部分代码放到别的地方去做,要么就是重构逻辑,减少循环嵌套。

头像
Paper
85 1
发布于
2016-04-15

用 react 话,不是可以更好的组建化?
你可以将每个循环中的结构单独提为一个组件:Item1,Item2,Item3
当前组件中 map <Item1>
<Item1> 中 map <Item2>
<Item2> 中 map <Item3>。

头像
cc_andy
134 2 8 14
发布于
2016-04-15

render(){

    if(this.state.loading){
        return <Loading/>;
    }else{
        let [header={},bodyHtml=[]]=[this.state.articleDetail.header];
        this.state.articleDetail.body.content.forEach(function (item1,index1) {
            bodyHtml.push(<h4 key={index1}>{item1.firstTitle}</h4>);
            item1.firstTitleDes.forEach(function (item2,index2) {
                bodyHtml.push(<h6 key={''+index1+index2}>{item2.secondTitle}</h6>);
                item2.secondTitleDes.forEach(function (item3,index3) {
                    bodyHtml.push(
                        <div key={''+index1+index2+index3}>
                            <p>{item3.describle}</p>
                            <pre><code className={item3.codeType}>{item3.code}</code></pre>
        return (
                <Head/>
                <div className="container">
                    <header className="aticle-header">
                        <h2>{header.title}</h2>
                        <p>发表于&nbsp;&nbsp;{header.date}&nbsp;&nbsp;|&nbsp;&nbsp;in&nbsp;&nbsp; <Link to="/">{header.type}</Link></p>
                    </header>
                    <article className="aticle-body">{bodyHtml}</article>
 
推荐文章
好帅的排球  ·  关于React Server Components远程代码执行漏洞(CVE-2025-55182)的预警提示―深圳大学信息中心
3 月前
听话的跑步鞋  ·  Day 14: React篇: 建置React開發環境 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
1 月前
活泼的红烧肉  ·  【Day11】 發生什麼事 - Events - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
4 周前
不开心的骆驼  ·  沈阳地铁10号线站点线路图(丁香湖-张沙布)-沈阳地铁10号线首末车时间-运营时间-沈阳地铁_车主指南
6 月前
长情的单车  ·  scenic-哔哩哔哩_Bilibili
7 月前
道上混的斑马  ·  友盟统计准确性如何? - 知乎
2 年前
月球上的镜子  ·  【Kaggle竞赛】迭代训练模型-腾讯云开发者社区-腾讯云
2 年前
开朗的长颈鹿  ·  转储java对象的属性-腾讯云开发者社区-腾讯云
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号