Size: a a a

2020 May 05

IH

Ilya Human in Frontend_ru
После апдейта ты ничего с новым стейтом не делаешь
источник

IH

Ilya Human in Frontend_ru
У тебя нет прямой зависимости от стейта
источник

IH

Ilya Human in Frontend_ru
Он же просто передавался как аргумент в функцию
источник

IH

Ilya Human in Frontend_ru
Попробуй в этом сандбоксе заменить свой Swiper на <h1>{this.state.dislikeOpacity}</h1>
источник

IH

Ilya Human in Frontend_ru
И ты увидишь что все работает
источник

IN

Igor N in Frontend_ru
тут проблема ещё в том, что setState асинхронный. https://medium.com/@wanpy/react-setstate-and-component-lifecycle-eafdc0a1af00
источник

IH

Ilya Human in Frontend_ru
Типа если сделать resize окна, то оно подтянет новый стейт
источник

IH

Ilya Human in Frontend_ru
Надо как-то иначе его прокидывать
источник

IN

Igor N in Frontend_ru
источник

AM

Aga Mahmudov in Frontend_ru
Ilya Human
И ты увидишь что все работает
Это я понял, а как быть? Как обновить его?
источник

AM

Aga Mahmudov in Frontend_ru
Это да, в основном render’e проблем нет - всё предельно ясно, вот с чайлдом возникли проблемы
источник

AM

Aga Mahmudov in Frontend_ru
Как мне в этом случае сделать opacity 1?
источник

AM

Aga Mahmudov in Frontend_ru
Ilya Human
Надо как-то иначе его прокидывать
Пробовал, не прокатывает. А ты можешь прямо в сандбоксе который я подготовил показать? Там прямо идеально описана проблема
источник

IN

Igor N in Frontend_ru
Aga Mahmudov
Это да, в основном render’e проблем нет - всё предельно ясно, вот с чайлдом возникли проблемы
Нет проблем с чайлдом у тебя. У тебя проблема в componentDidUpdate
источник

AM

Aga Mahmudov in Frontend_ru
Igor N
Нет проблем с чайлдом у тебя. У тебя проблема в componentDidUpdate
а в чём проблема? Ты сказал надо пропас указать, но чёто только это осилил написать

 componentDidUpdate(prevProps, prevState) {
   if (prevState.dislikeOpacity !== this.state.dislikeOpacity) {
     console.log('dislikeOpacity state has changed.')
   }
 }
источник

AM

Aga Mahmudov in Frontend_ru
(там у меня react native, но это идентично вебовскому, кроме всяких View и Text)
источник

IN

Igor N in Frontend_ru
Я тебе выше ссылку кинул, как с сеттаймауутом менять :)
источник

AM

Aga Mahmudov in Frontend_ru
Igor N
Я тебе выше ссылку кинул, как с сеттаймауутом менять :)
Братан, ещё раз глянул твой сандбокс - ты апдейтишь в основном render. Так даже и так получается делать:

componentDidMount() {
 setTimeout(() => this.setState({dislikeOpacity: 1}), 1000);
}

У меня проблема в другом, вложеная функция не хочет реагировать на обновление стейта
источник

AM

Aga Mahmudov in Frontend_ru
Проблема к сожалению актуальна и среди пользователей свайперов:

https://github.com/alexbrillant/react-native-deck-swiper/issues/180
https://github.com/alexbrillant/react-native-deck-swiper/issues/153
источник

IN

Igor N in Frontend_ru
Нет. В своём сандбоксе поменяй свайпер на любой тег и выведи значение опесити
источник