我正在使用react-slick滑块与3个滑块同步。有2个滑块,它工作得很好,但当我尝试3个滑块和2个参考时,它不工作。
constructor(props) {
super(props);
this.state = {
nav1: null,
nav2: null,
nav3: null,
};
}
componentDidMount() {
this.setState({
nav1: this.slider1,
nav2: this.slider2,
nav3: this.slider3,
});
}
<Slider
className="background-slider"
asNavFor={this.state.nav2, this.state.nav3}
ref={slider => (this.slider1 = slider)}
{...settings1}> ...
</Slider>
<Slider
className="content-slider"
asNavFor={this.state.nav1, this.state.nav3}
ref={slider => (this.slider2 = slider)}
{...settings2}> ...
</Slider>
<Slider
className="person-slider"
asNavFor={this.state.nav2, this.state.nav1}
ref={slider => (this.slider3 = slider)}
{...settings3}> ...
</Slider>谢谢
发布于 2018-10-09 20:40:02
"asNavFor“属性需要单个值,而不是一列值,所以在其中放置多个ref将不起作用。
如果你让每个滑块指向下一个滑块,然后让最后一个点回到第一个滑块,这样做是可行的:
constructor(props) {
super(props);
this.state = {
nav1: null,
nav2: null,
nav3: null,
};
}
componentDidMount() {
this.setState({
nav1: this.slider1,
nav2: this.slider2,
nav3: this.slider3,
});
}
<Slider
className="background-slider"
asNavFor={this.state.nav2}
ref={slider => (this.slider1 = slider)}
{...settings1}> ...
</Slider>
<Slider
className="content-slider"
asNavFor={this.state.nav3}
ref={slider => (this.slider2 = slider)}
{...settings2}> ...
</Slider>
<Slider
className="person-slider"
asNavFor={this.state.nav1}
ref={slider => (this.slider3 = slider)}
{...settings3}> ...
</Slider>作为附注:我不知道这是官方支持的行为,还是仅仅是一个愉快的巧合,所以请谨慎使用。
https://stackoverflow.com/questions/52717389
复制相似问题