【问题标题】:react js issue with rendering data in array.map()用 array.map() 中的渲染数据反应 js 问题
【发布时间】:2020-07-18 18:20:03
【问题描述】:

laravel 和 react js

我正在尝试从 laravel 路由获取数据并将其映射到我的组件中,当我尝试使用 array.map 函数下的小代码块时,它可以工作 link shown in this image 还说视觉是无法解析的变量,但它可以工作并渲染数据

现在的问题是,当我在 array.map 下尝试一些大数据时,它会出错并且不渲染布局问题代码在这里

  <div className="services-pack">

                            {
                                sr.map(data =>(
                            <div className="Sr-item z-depth-1 wow fadeInRight slow">


                                <div className="icon-wrap">
                                    <div className="S-icon rounded-circle">
                                        <img  src="../../../img/fron-end.png" alt="icons fron-end"
                                             className="img-fluid"/>
                                    </div>
                                </div>
                                <div className="S-name">
                                    <h3>{data.frontEnd}</h3>
                                    <p>{data.frontEnd-intro}</p>
                                </div>

                            </div>



                            <div className="Sr-item z-depth-1 wow fadeInUp delay-1s slow">
                                <div className="icon-wrap">
                                    <div className="S-icon rounded-circle">
                                        <img src="../../../img/fron-end.png" alt="icons fron-end"
                                             className="img-fluid"/>
                                    </div>
                                </div>
                                <div className="S-name">
                                    <h3>{data.backtEnd}</h3>
                                    <p>{data.backtEnd-intro}</p>
                                </div>
                            </div>


                            <div className="Sr-item z-depth-1 wow fadeInUp delay-1s slow">
                                <div className="icon-wrap">
                                    <div className="S-icon rounded-circle">
                                        <img src="../../../img/fron-end.png" alt="icons fron-end"
                                             className="img-fluid"/>
                                    </div>
                                </div>
                                <div className="S-name">
                                    <h3>Wordpress Website</h3>
                                    <p>Elementor & Visual Composer Dev. </p>
                                </div>
                            </div>
                            <div className="Sr-item z-depth-1 wow fadeInUp delay-1s slower">
                                <div className="icon-wrap">
                                    <div className="S-icon rounded-circle">
                                        <img src="../../../img/fron-end.png" alt="icons fron-end"
                                             className="img-fluid"/>
                                    </div>
                                </div>
                                <div className="S-name">
                                    <h3>Analytics</h3>
                                    <p>Get Insights Into Who Is Browsing Site</p>
                                </div>
                            </div>
                                ) ) }



                                </div>

我想在所有这些 Sr-items 块中呈现我的所有数据,但是当我在想要关闭它们的末尾移动 map 函数的右括号时,我会出错 here how error code looks

【问题讨论】:

    标签: javascript reactjs laravel


    【解决方案1】:

    问题在于 JSX 函数只能返回单个元素。

    您需要使用 React Fragment (https://reactjs.org/docs/fragments.html) 包装传递给 map 的函数的返回元素

    sr.map((data) => (
      <React.Fragment> // or just <>
        <div></div>
        <div></div>
        // ...
      </React.Fragment> // or just </>
    ))
    
    

    【讨论】:

      【解决方案2】:

      您的代码的问题在于,您在一个返回语句中返回了多个 div,而它应该只有一个。 将所有 div 包裹在一个父 div 中,它将在 map return 语句中起作用。

      array.map(element => { return something;});
      

      或者

      array.map(element => something);
      

      这两行结果是相等的。 您也不能像以前那样使用连字符(-)作为变量名

      <p>{data.frontEnd-intro}</p>
      

      <p>{data.backtEnd-intro}</p>
      

      这些应该是:

      <p>{data.frontEndIntro}</p>
      

      或者

      <p>{data.frontEnd_intro}</p>
      

      <p>{data.backtEndIntro}</p>
      

      或者

      {data.backtEnd_intro}

      检查一下:

      <div className='services-pack'>
              {this.state.sr.map((data) => (
                <div>
                  <div className='Sr-item z-depth-1 wow fadeInRight slow'>
                    <div className='icon-wrap'>
                      <div className='S-icon rounded-circle'>
                        <img
                          src='../../../img/fron-end.png'
                          alt='icons fron-end'
                          className='img-fluid'
                        />
                      </div>
                    </div>
                    <div className='S-name'>
                      <h3>{data.frontEnd}</h3>
                      <p>{data.frontEndIntro}</p>
                    </div>
                  </div>
      
                  <div className='Sr-item z-depth-1 wow fadeInUp delay-1s slow'>
                    <div className='icon-wrap'>
                      <div className='S-icon rounded-circle'>
                        <img
                          src='../../../img/fron-end.png'
                          alt='icons fron-end'
                          className='img-fluid'
                        />
                      </div>
                    </div>
                    <div className='S-name'>
                      <h3>{data.backtEnd}</h3>
                      <p>{data.backtEndIntro}</p>
                    </div>
                  </div>
      
                  <div className='Sr-item z-depth-1 wow fadeInUp delay-1s slow'>
                    <div className='icon-wrap'>
                      <div className='S-icon rounded-circle'>
                        <img
                          src='../../../img/fron-end.png'
                          alt='icons fron-end'
                          className='img-fluid'
                        />
                      </div>
                    </div>
                    <div className='S-name'>
                      <h3>Wordpress Website</h3>
                      <p>Elementor & Visual Composer Dev. </p>
                    </div>
                  </div>
                  <div className='Sr-item z-depth-1 wow fadeInUp delay-1s slower'>
                    <div className='icon-wrap'>
                      <div className='S-icon rounded-circle'>
                        <img
                          src='../../../img/fron-end.png'
                          alt='icons fron-end'
                          className='img-fluid'
                        />
                      </div>
                    </div>
                    <div className='S-name'>
                      <h3>Analytics</h3>
                      <p>Get Insights Into Who Is Browsing Site</p>
                    </div>
                  </div>
                </div>
              ))}
            </div>
      

      【讨论】:

        猜你喜欢
        • 2022-11-12
        • 2020-04-22
        • 1970-01-01
        • 2021-04-14
        • 2016-07-13
        • 2021-04-13
        • 2018-01-25
        • 1970-01-01
        相关资源
        最近更新 更多