简体   繁体   English

用数组反应问题-组件未加载?

[英]React problem with array - component not loading?

For some reason, my the boolean only returns the URL's the component is being ignored.. but I don't know why can someone help? 由于某种原因,我的布尔值仅返回该组件被忽略的URL。.但是我不知道为什么有人可以提供帮助?

I want to return the Component inside the loop.. but nothing happens? 我想在循环内返回组件。但是什么也没发生?

import React, { Component } from 'react';
import AwesomeSlider from 'react-awesome-slider';
import 'react-awesome-slider/dist/styles.css';
import 'bootstrap-4-grid/scss/grid.scss';

class Slider extends Component {

    render() {

        let showSlides = true;
        let images;

        if(showSlides) {
            images = [
                require('images/slider/1.jpg'),
                require('images/slider/2.jpg'),
                require('images/slider/3.jpg'),
                require('images/slider/4.jpg')
            ];

            <AwesomeSlider>
            {
                images.map(function(image){
                    return <div data-src={image} />
                })
            }
            </AwesomeSlider>
        }

        return (
            <div className="slider">
                <div className="container">
                    <div className="row">
                        <div className="col-lg-12">
                            {images}
                        </div>
                    </div>
                </div>
            </div>
        );
    }
}

export default Slider;

You are not rendering the AwesomeSlider , it gets executed in your if statement, but never returned. 您没有渲染AwesomeSlider ,它在您的if语句中执行,但从未返回。 you only return the array of images. 您只返回图像数组。 you could do something like: 您可以执行以下操作:

class Slider extends Component {

  render() {

    let showSlides = true;
    let images;

    if(showSlides) {
      images = [
        require('images/slider/1.jpg'),
        require('images/slider/2.jpg'),
        require('images/slider/3.jpg'),
        require('images/slider/4.jpg')
      ];
    }

    return (
      <div className="slider">
        <div className="container">
          <div className="row">
            <div className="col-lg-12">
              {
                (images && showSlides) &&
                <AwesomeSlider>
                  {
                    images.map(function(image){
                      return <div data-src={image} />
                    })
                  }
                </AwesomeSlider>
              }
            </div>
          </div>
        </div>
      </div>
    );
  }
}

export default Slider;

My react being a little rusty. 我的反应有点生锈。 take a look at React Conditional Rendering Also, having the images load inside the render function may not be the best idea, since they will be required every single time there is a change in the component, even if it has nothing to do with images. 看看React条件渲染另外,将图像加载到render函数中可能不是最好的主意,因为每当组件发生更改时,即使与图像无关,都需要使用它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM