import { Component } from "react";
import getCharacters from "../getCharacters/getCharacters";
import OneCharacter from "../oneCharacter/oneCharacter";
import Button from "../button/button";
import rightArrow from '../../imgs/right-arrow.png';
import leftArrow from '../../imgs/left-arrow.png';
import './carousel.scss';
function composeCharacters(offset) {
let arr = [];
for (let i = 1; i <= 4; i++) {
arr.push(<OneCharacter offset={offset + i} />);
}
return arr;
}
class Carousel extends Component {
state = {
offset: 4,
}
plusChars = () => {
this.setState(({offset}) => ({
offset: offset + 1
}))
}
minusChars = () => {
if (this.state.offset === 0) {
return;
}
this.setState( ({offset}) => ({
offset: offset - 1
}))
}
onUpdate = () => {
this.setState(({ offset }) => ({
offset: offset + 4,
}))
console.log(this.state.persons);
}
render() {
let arr = [...composeCharacters(this.state.offset)];
console.log(arr);
return (
<section className="carousel">
<div className="carousel__wrapper">
<div className="carousel__inner">
{arr}
</div>
<div className="carousel__buttons">
<div className="carousel__leftA" onClick={this.minusChars}><img src={leftArrow} alt="left arrow" /></div>
<div className="carousel__rightA" onClick={t<code lang="javascript">
</code>his.plusChars}><img src={rightArrow} alt="right arrow" /></div>
</div>
</div>
<Button name={'Add Hero'} onClick={this.onUpdate} />
</section>
)
}
}
export default Carousel;
// Первые четыре элемента показывает нормально, а при нажатии на стрелки меняется offset и arr в render, но на экране всегда только первые четыре элемента. В массиве arr(render) тоже все меняется, я получаю другие элементы с сервера.