gpt4 book ai didi

jquery - iDangero.us Swiper 和 React - 处理动态数据

转载 作者:行者123 更新时间:2023-12-03 14:15:19 25 4
gpt4 key购买 nike

我有一个与使用 React 实现 iDangero.us Swiper 相关的问题。我已经玩了一段时间了,我的问题是,当我处理动态数据时,实际的滑动不起作用。让我用例子来说明这一点。

我的代码由以下方式组成:

1) 我有一个名为 SwiperComponent 的组件。有两个部分 - 方法 componentDidMount() 中我放置了 Swiper 组件的初始化,而 render() 方法中我生成 iDangero.us Swiper 定义的结构。

var SwiperComponent = React.createClass({
componentDidMount() {
this.swipe = new Swiper(React.findDOMNode(this), {
slidesPerView: 3,
centeredSlides: true,
spaceBetween: 10
});
},

render() {
return React.createElement('div', React.__spread({}, this.props, {className: 'swiper-container'}),
React.createElement('div', {className: 'swiper-wrapper'},
React.Children.map(this.props.children, function (child, index) {
return React.createElement('div', {className: 'swiper-slide'}, React.cloneElement(child));
})
)
);
}
});

2)我有一个简单的 Index.jsx 文件,我在其中准备“动态内容”,只需创建一个用一些图像填充的数组。

var Index = React.createClass({

getInitialState: function() {
return {
movies: []
};
},

componentDidMount() {
this.setState({
movies: ["http://www.themusehotel.com/design/images/930-481/nyc-skyline.jpg", "https://ephemeralnewyork.files.wordpress.com/2010/08/broadway47thstreet2010.jpg", "http://41.media.tumblr.com/27d14da3be1e02eb7b6ead5bda0ac1b2/tumblr_n5dqi4XDz61qdeuyro1_1280.jpg", "http://photos.cntraveler.com/2014/09/29/5429c32b425f183f61bf7316_new-york-city-skyline.jpg"],
});
},


render: function() {
var items = this.state.movies;

return (
<SwiperComponent>
{
items.map((item) => {
return (
<img src={item} width="100%" height="200"/>
)
})
}
</SwiperComponent>
)
}
});

正如我提到的,问题是滑动部分不起作用。非常有趣的是,一旦我在 Chrome 中打开开发者控制台或刷出数组并放置一些静态标签,它就会开始工作。

我准备了一个 JSfiddle,您可以在其中看到这个问题的实际情况 - https://jsfiddle.net/4z3zyk07/4/

有人知道我错过了什么以及做错了什么吗?我将非常感谢你的帮助。非常感谢!

拉德克

最佳答案

这是因为你在“componentDidMount”的生命周期中使用了this.setState来填充你的数组movies

当调用外部 componentDidMount 时,内部 componentDidMount 已经被调用,此时你的 Swiper 找不到任何图片,因此无法计算每个图片的正确宽度。

在componentWillMount中初始化你的图片数据。

  componentWillMount() {
this.setState({
movies: [your pictures],
});
},

然后 Swiper 就会知道框中有多少张图像,并计算每个人的宽度。

关于jquery - iDangero.us Swiper 和 React - 处理动态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com