Size: a a a

React — русскоговорящее сообщество

2020 October 23

FD

Face Direct in React — русскоговорящее сообщество
Доброе утро, ребят такой вопрос, я с таким раньше не сталкивался, есть Функциональный компонент, в нем есть приват метод const = () => ... Этот метод при определенном событие передается в store(не спрашивайте зачем, так было на проекте), чтобы переиспользоватся в другом компоненте. Так вот вопрос, при использование его в другом компоненте из стора, доступен ли скоуп данных из замыкания, из места где этот метод объявлен. Я знаю точно, что когда мы так передадим метод класса, то он потянет за собой конструктор, а вот обычная функция потащит ли свою область видимости?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
K F
Мб Малик тролль?😂
он скоро дотроллится, потому что у него то баны стакаются, одним днем как получит бан на год и пойдет новый аккаунт регать)
источник

V

Vetro in React — русскоговорящее сообщество
Face Direct
Доброе утро, ребят такой вопрос, я с таким раньше не сталкивался, есть Функциональный компонент, в нем есть приват метод const = () => ... Этот метод при определенном событие передается в store(не спрашивайте зачем, так было на проекте), чтобы переиспользоватся в другом компоненте. Так вот вопрос, при использование его в другом компоненте из стора, доступен ли скоуп данных из замыкания, из места где этот метод объявлен. Я знаю точно, что когда мы так передадим метод класса, то он потянет за собой конструктор, а вот обычная функция потащит ли свою область видимости?
Ну если вызвать функцию, которая замыкает какие либо данные из своей области видимости, то она их сможет использовать в момент вызова

В этом же и суть)
источник

V

Vetro in React — русскоговорящее сообщество
Главное не забывать, что значения будут те, которые были на момент инициализации
источник

FD

Face Direct in React — русскоговорящее сообщество
Vetro
Ну если вызвать функцию, которая замыкает какие либо данные из своей области видимости, то она их сможет использовать в момент вызова

В этом же и суть)
я бы и не парился, в обычном случае, а тут она как бы внутри функционального компонента, и ссылка на нее передается в стор, а вызывается она в другом, и у меня при дебаге теряются данные, которые используются в этой функции, а точнее они сбрасываются с исходному значению во всех случаях. И дело тут точно не в перерисовке, т.к данные которые она используют внутри, тоже из стора
источник

FD

Face Direct in React — русскоговорящее сообщество
Я просто подумал вдруг кто-то похожий кейс встречал. Это впринципе больное решение, отдавать мето в стор и вызывать его в другом месте. вместо того, чтобы передать просто данные которые нужны в этом другом месте. Поэтому и не особо надеялся, что кто-то сталкивался))
источник

И

Иван in React — русскоговорящее сообщество
Face Direct
Я просто подумал вдруг кто-то похожий кейс встречал. Это впринципе больное решение, отдавать мето в стор и вызывать его в другом месте. вместо того, чтобы передать просто данные которые нужны в этом другом месте. Поэтому и не особо надеялся, что кто-то сталкивался))
Да, решение максимально дебильное. Только не метод, а функция
источник

FD

Face Direct in React — русскоговорящее сообщество
Иван
Да, решение максимально дебильное. Только не метод, а функция
Да, я прошу прощения, назвал методом, т.к внутри компонента))
источник

DR

Dima Reshet in React — русскоговорящее сообщество
ребят, как убрать с реакта warnings в терминале ?
источник

DR

Dima Reshet in React — русскоговорящее сообщество
дропаю линтенер но они всеравно есть.
разве это не eslint ?
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Dima Reshet
ребят, как убрать с реакта warnings в терминале ?
писать код по-человечески
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
Dima Reshet
ребят, как убрать с реакта warnings в терминале ?
Исправить?
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
а не на бум
источник

И

Иван in React — русскоговорящее сообщество
Face Direct
Да, я прошу прощения, назвал методом, т.к внутри компонента))
Вот как раз переданные по ссылке методы класса получают доступ к актуальным значениям полей класса. А функция замыкает значения из лексического окружения при объявлении. Вангую, что функцию в стор ты кладёшь при начальных значениях пропсов/стейта, потом значения меняются, а функция всё ещё обращается к начальным значениям (хоть ты и ожидаешь обращение к обновлённым значениям). Так замыкания работают, дратути.
источник

V

Vetro in React — русскоговорящее сообщество
Face Direct
Я просто подумал вдруг кто-то похожий кейс встречал. Это впринципе больное решение, отдавать мето в стор и вызывать его в другом месте. вместо того, чтобы передать просто данные которые нужны в этом другом месте. Поэтому и не особо надеялся, что кто-то сталкивался))
As we’ve seen, in theory while a function is alive, all outer variables are also retained.

But in practice, JavaScript engines try to optimize that. They analyze variable usage and if it’s obvious from the code that an outer variable is not used – it is removed.

An important side effect in V8 (Chrome, Edge, Opera) is that such variable will become unavailable in debugging.

🤷‍♂
источник

DR

Dima Reshet in React — русскоговорящее сообщество
Bugs Bunny
писать код по-человечески
да не я писал, я как то с vue пришел на проект, а тут бам )
источник

DR

Dima Reshet in React — русскоговорящее сообщество
но спасибо )
источник

И

Иван in React — русскоговорящее сообщество
Dima Reshet
ребят, как убрать с реакта warnings в терминале ?
Это линтер. В кра он зашит намертво — не удалишь. Лучше код пиши так, как он советует, не зли его 🤫
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
никогда. слышишь. НИКОГДА не вздумай выключать eslint. лучше пофикси
источник

DR

Dima Reshet in React — русскоговорящее сообщество
Иван
Это линтер. В кра он зашит намертво — не удалишь. Лучше код пиши так, как он советует, не зли его 🤫
ога, пасибо-пасибо)
источник