var slides = [ { 'img': 'img/1.png' }, { 'img': 'img/2.png' }, { 'img': 'img/3.png' }, { 'img': 'img/dendrometer.jpg' }, { 'img': 'img/4.png' }, { 'img': 'img/51.png' }, { 'img': 'img/5.png' }, { 'img': 'img/6.png' } ]; var PrevButton = React.createClass({ render: function() { var disabled = false; if (this.props.slideshow.state.currentSlide <= 0) { disabled = true; } return ( ); }, handleClick: function(e) { this.props.slideshow.prevSlide(); } }); var NextButton = React.createClass({ render: function() { var disabled = false; if (this.props.slideshow.state.currentSlide >= slides.length - 1) { disabled = true; } return ( ); }, handleClick: function(e) { this.props.slideshow.nextSlide(); } }); var SlideDisplay = React.createClass({ render: function() { var slide = this.props.slides[this.props.currentSlide]; return (
); } }); var Slideshow = React.createClass({ getInitialState: function() { return { 'currentSlide': 0 }; }, prevSlide: function() { var newSlide = this.state.currentSlide; if (this.state['currentSlide'] > 0) { newSlide = newSlide - 1; } this.setState({'currentSlide': newSlide}); }, nextSlide: function() { var newSlide = this.state.currentSlide; if (this.state.currentSlide < slides.length - 1) { newSlide = newSlide + 1; } this.setState({'currentSlide': newSlide}); }, componentWillMount: function() { document.addEventListener('keydown', this.handleKeyDown, false); }, handleKeyDown: function(e) { if (e.keyCode === 37) { this.prevSlide(); } else if (e.keyCode === 39) { this.nextSlide(); } }, render: function() { return (
); } }); ReactDOM.render( , document.getElementById('slideshow') );