Не надо закидывать картинки в стейт, пусть компонент получает их через props.
Добавите в стейт свойство, содержащее индекс отображаемой картинки, делайте ему +/- 1, в зависимости от нажатой кнопки, выход за границы массива поправляйте через взятие остатка от деления на его длину:
state = {
active: 0,
}
nextSlideHandler = ({ target: { dataset: { step } } }) => {
const len = this.props.images.length;
this.setState(({ active }) => ({
active: (active + len + +step) % len,
}));
}
<button data-step="-1" onClick={this.nextSlideHandler} className="prev">prev</button>
<button data-step="+1" onClick={this.nextSlideHandler} className="next">next</button>
<img src={this.props.images[this.state.active]} />
https://jsfiddle.net/e7vzm9kq/