Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Слайдер на React.js (https://javascript.ru/forum/library-toolkit-framework/52468-slajjder-na-react-js.html)

Smike 20.12.2014 18:11

Слайдер на React.js
 
Всем привет. В общем есть слайдер, сделанный на реакте. Слайды листаются с определенным интервалом. Необходимо сделать так, чтобы интервал очищался когда пользователь нажимает на sliderbullet и запускался сначала. Код вы можете увидеть здесь http://jsfiddle.net/8zgmqrho/

У компонента Slider есть свойство componentWillUnmount, но я не понимаю где и как надо его вызвать. Помогите пожалуйста, товарищи =)

melky 20.12.2014 19:02

вот тут пишешь обработчик клика:
Код:

return <SlideBullet classer={i===this.state.curslide?'current-slide':''} slideNumber={i} certainSlide={this.certainSlide}/>
    }.bind(this))

или, вернее, подписываешься на события смены слайдов

и в нём очищаешь интервал

наверное, это метод certainSlide компонента Slider

Цитата:

Сообщение от Smike
componentWillUnmount, но я не понимаю где и как надо его вызвать

таким вопросом не надо задаваться :) реакт сам вызовет этот lifecycle hook, когда компонент будет отмонтирован от дерева

Smike 21.12.2014 11:12

melky,
дело в том, что обработчик клика уже вшит в компоненте SlideBullet. А интервал задан в компоненте Slider.
var labels = Slides.map(function(s,i){
      return <SlideBullet onClick={this.componentWillUnmount} classer={i===this.state.curslide?'current-slide':''} slideNumber={i} certainSlide={this.certainSlide}/>
    }.bind(this))


Можно ли таким образом просто очистить его?

melky 21.12.2014 14:37

Цитата:

Сообщение от Smike
Можно ли таким образом просто очистить его?

хз, но лучше так не делать.

пробни этот способ - я вынес очищение интервала в отдельный метод и вызываю его в componentWillUnmount и certainSlide
http://jsfiddle.net/8zgmqrho/1/

Smike 21.12.2014 16:00

melky,
Огромное спасибо за помощь, помогло.
ЗЫ. раз такое дело, не могли бы вы посоветовать литературку по реакту, или дать пару советов в изучении? =)

melky 21.12.2014 17:16

Цитата:

Сообщение от Smike (Сообщение 347466)
melky,
Огромное спасибо за помощь, помогло.
ЗЫ. раз такое дело, не могли бы вы посоветовать литературку по реакту, или дать пару советов в изучении? =)

держи две ссылки:

https://github.com/enaqx/awesome-react
http://react.rocks/

этого хватит на первое время :)

ну а так - по большей части материалов нету, всё только набирает обороты... например, еще до конца не определились с тем, как должен вести себя Flux в случае асинхронных запросов.

ну и приходи сюда, на форум, с вопросами - нет проблем, попробуем помочь :victory:

Smike 21.12.2014 17:54

Огромное спасибо! До новых встреч =)


Часовой пояс GMT +3, время: 12:37.