все не так, почитайте документацию реакта
В return на первый взгляд ошибка. А кэш зачем сделан вообще непонятно
чтобы этот рендер не выполнялся каждый раз при переходе на разные страницы
да, в return`е опечатка, поправил, но основная проблема к сожалению не в этом
а есть ли адекватная альтернатива такому "кэшу"?)
PureComponent и его друзья, полагаю.
сомневаюсь что поможет, так как компонент в моем случае не апдейтится , а пересоздается на разных страницах)
Вообще выглядит сомнительным такое кэширование и больше похоже на оверхэд. Я бы замерил какой выигрыш от этого
Поддерживаю. 🙂 Незачем пытаться оптимизировать преждевременно.
гляньте как долго открывается панель со смайлами при переинициализации компонента
Debug версия? Если да, то на проде будет гораздо быстрей. Если не получится, есть вариант проинициализировать компонент смайлов заранее.
смотрел в проде тоже долго, если сравнивать с телегой и ватсапом, у них мгновенно эта панелька вылезает, я не пойму как они ее реализовали
Если ты про эмоджи, то это нативная панелька)
в телеге не нативная ведь)
Ну вот на ios я смотрю, здесь нативная, во всех софтах такая и даже в смс. Одинаковая.
хм, а на андроиде панельки сильно отличаются и на телеге и на ватсапе
И если тебе нужны просто эмоджи, то для этого не нужно писать самописный компонент, они же в нативной клавиатуре могут их выбирать, за исключением когда у тебя есть принципиальная задача поставить какие-то левые смайлы.
например на андроидах, в мессенджерах можно юзать смайлы ios )
Вот ты когда на чат нажимаешь и открывается экран с хедером emoji, у тебя там как идет логика отображения нижнего компонента с emoji?
У тебя вот в этой логике проблема. В зависимости от тоггла всегда размонтирование и монтирование происходит)
toggleSkinBox ?)
Да. В компоненте который ты подключаешь, скорей уже есть проп который отвечает за анимированные открытие, либо сворачивание панельки emoji, то есть, компонент без каких-либо условий должен стоять в коде.
Ой. Имею ввиду в компоненте скорей всего через ref можно вызвать метод открытия/закрытия панельки.
я проверил через useEffect, он вызывается только тогда когда я перешел на страницу, далее если я уже находясь на странице открываю и сворачиваю панельку, то useEffect не вызывается
Ссылку дай на библиотеку, я посмотрю, skinbox
https://github.com/liangl1412/react-native-emoji-keyboard#readme
делал так, ок сейчас повторю)
Код покажи потом какой получился.
Я имею ввиду ты свой код который выше написан, приведи к такому виду))))
Просто showBoard true false переключай и посмотрим.
привел к такому виду, поигрался с showBoard, все также медленно)
Так у тебя же всегда тру стоит. Как ты проверяешь такой код если у тебя всегда панель открыта? )))
Короче ты имеешь ввиду что даже при такой реализации медленно работает?
перехожу по страницам, пробовал и по условию)
да, в этом я уже убежден)
Обсуждают сегодня