Pull to refresh

Comments 14

Самый первый пример мне многое сказал о качестве статьи.
а что не так с первым примером?

Настолько не-реакт-вей ещё поискать нужно, конечно.

не реакт-вей там только classList.toggle, допустим вместо него есть локальный стейт компонента, относительно которого в рендере ставится нужный css-класс

Ну раз мы и говорим про анимации в реакте, наверное и нужно делать как принято в реакте, с стейтом, да ключем в render? Да и конкретно в данном примере document.getElementById выглядит чужеродно, в крайнем случае есть refs

Я думаю AxisPod намекал на ref и на state, если не так, то я про это говорю. Оба подхода работают, но предложенный вариант хуже работает с жизненным циклом компонента.
Ну кроме jquery-way ещё то, что там нет собственно анимаций, а есть только переходы (transition).
что мешает повесить keyframes анимацию на класс?
Вот и я не знаю, что мешало повесить именно анимацию, а не унылый транзишен на margin :) Да хотя бы и из того же animate.css, раз он вызвал такой вау-эффект у автора.

Второй пример тоже никто ни разу не запускал. Был бы отличным примером, почему нельзя индекс из итератора как ключ (key) использовать (потому что при удалении из середины анимация проигрываться не будет), а ещё забыли метод handleDelete,

И данный пример устарел, покуда АПИ библиотеки значительно поменялось.

handleClick() {
    const wrapper = document.getElementById('wrapper');
    wrapper.classList.toggle('is-nav-open')
}

o_O. Как это попало на главную? Зачем эта статья здесь, да ещё и с таким клик-бейт заголовком. Дальше можно даже не читать. Кажется автор видел React только на картинках через подзорную трубу.

const wrapper = document.getElementById('wrapper');

Никогда не пишите вот так в Реакте! тут проблема даже не в нарушении какого-то там react-way, тут нарушается сам принцип выделения компонентов! Каждый компонент должен быть переиспользуемым и разумно изолированным. Здесь же не наблюдается ни того, ни другого...


Если уж так нужно "поиграть" с элементами DOM — используйте предназначенные для этого инструменты! Неужели так сложно было написать вот так?


const wrapper = ReactDOM.findDOMNode(this);

Или так?


const wrapper = this.wrapperRef.current;
Sign up to leave a comment.