【问题标题】:React Slick Slide Height IssueReact Slick 幻灯片高度问题
【发布时间】:2018-09-30 09:14:05
【问题描述】:

我无法让这些 React-Slick 滑块组件具有相同的高度。它们都是响应式 div,并会随着页面大小的变化而相应调整大小,但我希望左侧的 div 与右侧的 div 高度相同。

我用下面的代码 sn-p 定义了我的 SimpleSlider。

class SimpleSlider extends React.Component {
  constructor(props) {
    super(props);
    ...
  }
  render() {
    let settings = {
      dots: true,
      infinite: true,
      arrows: true,
      speed: 500,
      slidesToShow: 2,
      slidesToScroll: 2,
      initialSlide: 0,
      responsive: [...]
    };
    let Components = this.sliderObjects.components;

    return (
      <div>
        <h2> {this.sliderObjects.title} </h2>
        <Slider {...settings} >
        {
          Components.map((component,index)=>
           <div key={index}  >
            <SliderComponent key={index} {...component} />
            </div>
            )
        }
        </Slider>
      </div>
    );
  }
}

然后我的 SliderComponent 就这样定义了

class SliderComponent extends React.Component{
  render() {
    return (
      <div className='slick-slider-component'>
            <h3>{this.props.header}</h3>
            <p>{this.props.text}</p>
      </div>
    );
  }
}

谁能帮我解决这个问题?感觉应该是可能的,而且不是非常困难,但我想不通。

【问题讨论】:

  • 嗨,您是否找到了解决此问题的更好方法,而不是手动计算高度?我尝试使用 flex 但这没有帮助。

标签: css reactjs height carousel react-slick


【解决方案1】:

如果您知道您的最大高度,您可以使用一些 minHeight(或 css 中的 min-height)设置 SliderComponent 的样式。 你可以找到一些input here.

如果你不知道: 挂上你的组件WillMount:

componentDidMount() {
    const height = document.getElementById('slidercomponent-id').clientHeight;
    this.setState({ height });
  },

并将此高度设置为您在 div 中的高度。

【讨论】:

  • 这就是我一直在寻找的东西,而且我已经让它几乎可以工作了。出于某种原因,当我记录 clientHeight 时输出的高度总是偏离 50-80 像素左右的边距。我可以通过添加到输出的结果来解决这个问题,但它并不总是偏离特定的边距。关于可能导致此问题的任何想法?
  • 弄清楚如果我在 componentDidMount 内的代码块周围添加一个 setTimeout(),它会给出准确的高度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多