Максим
ну мы ж не в курсе как у вас там
Это не важно. Я просто хочу знания получить, а точнее узнать, можно ли это как-то без коллбеков сделать. Чтобы я в одном месте изменил состояние, а в вдругом чтобы это уже было видно
Максим
Ну так можно туда передать какой-нибудь метод класса, например
не могу я так( у меня события клавиатуры как бы, они идут один за другим( и оба сразу вызываются (ну как бы идут один за другим вызов, но в один момент)
Максим
http://prntscr.com/px0wdv - вот есть поле. Если нажать на пункт в выпадающем селекте (нажать по энтеру), то вызовутся два события. Вот в первом нужно поменять стейт, а во втором это уже должно быть видно
Максим
я не могу вызвать в коллбеке второй, поскольку они одновременно вызываются как бы, это не коллбековские вещи как бы
Максим
я понимаю, поэтому и пришёл сюда(
Максим
вдруг есть какие-то нюансы обновления состояния, с которыми я не знаком. Вот, к примеру. я сегодня вот что узнал: https://medium.com/@WoTzap/%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-setstate-%D1%8D%D1%82%D0%BE-%D0%B1%D1%83%D0%B4%D1%83%D1%89%D0%B5%D0%B5-react-d262be6a6c02
Максим
this.setState((prevState, props) => ({ count: prevState.count + 1 })); this.setState((prevState, props) => ({ count: prevState.count + 1 }));
Максим
если сделать так, то вот тут будет синхронность
Максим
читал, но не нашёл там ответа
Максим
Ну по энтеру вызывается сначала событие Селекта (самой библиотеки автокомлита), а сразу за ним событие клавиатуры обычное)
Максим
они как бы один за другим вызываются и мне надо в событие Селекта флаг переключить, чтобы событие клавиатуры уже знало о нём
Maxim
Что делает событие библиотеки и твое
Максим
вызываются)
Максим
первое обрабатывает то что нужно и второе тоже)
Максим
просто мне нужно, чтобы они не делали два раза одну задачу
Maxim
Просто это очень странный кейс
Максим
почему?
Максим
По сути я вот что хочу: this.setState((prevState, props) => ({ count: prevState.count + 1 })); this.setState((prevState, props) => ({ count: prevState.count + 1 })); Вот тут ответ будет 2, если изначально каунт был 0. НО, это в случае каунта. А мне нужно то же самое проделать с флагом
Maxim
Для инпутов с обычным автокомплитом не видел никогда такого что бы сразу два события
Максим
Ну вот есть же разные случаи: когда-то вам надо, чтобы просто сработало событие по нажатию клавиши и всё. А в вдругой раз, чтобы сработало событие в селекте. А иногда случается (мой случай), что они пересекаются(
Максим
ны возови второй сетстейт в колбеке
не могу, коллбек же будет в первой функции( эх, сложно всё
Максим
видимо мне нужно что-то типа того https://stackoverflow.com/questions/53409325/does-this-setstate-return-promise-in-react
Максим
но ещё не факт, пока читаю тока
Maxim
Попробуй на хуках
Максим
Вот это идея, кстати, попробую)
Artem
@zarabotaet finalform на нейтив норм будет?
i
@irrvrsl сработал, но теперь при нажатии на инпут внутри дива фокус пропадает\
i
как можно забить элемент в фокус сразу как он отрендерился?
Artem
@zarabotaet знач формик
Dmitriy
@zarabotaet знач формик
но я неточно знаю
Artem
@zarabotaet не слежу полгода, думал что-то молодежное вышло))
Kurzdor
помогите кто сталкивался с подобным
поорал с ответов ответ один: послать себя нахуй и поставить 10Очку, а туда накатить WSL Ubuntu PROFIT
Artem
@kurzdor молодежное подъехало )) надо глянуть
Андрей Чайковский
Друзья, есть у кого примеры customize-cra + storybook?
Саша
как можно забить элемент в фокус сразу как он отрендерился?
useRef - для инпута, useEffect(() => { inputRef.current.focus() }, [])
i
@Alek_de_Mik спс, ужед сделал
Егор
useRef - для инпута, useEffect(() => { inputRef.current.focus() }, [])
Ну вообще не совсем верно. Работать будет, но bad practies. Надо сразу привыкать норм делать: useEffect(() => { inputRef.current.focus() }, [inputRef])
Егор
Все переменные что участвуют в хуке должны быть в зависимостях) Я только функции типа setState и константы извне не добавляю
Саша
Все переменные что участвуют в хуке должны быть в зависимостях) Я только функции типа setState и константы извне не добавляю
Тут даже не совсем в этом дело. А в том, что на момент срабатыания эффекта реф ещё может быть не инициализирован, а нам нужен именно момент того, когда появляется инпут
Егор
inputRef же никогда не поменяется
Ну да, поэтому будет работать. Но константа внутри компонента создается - лучше в зависимости сразу на всяк случай. Что бы в аналогичном случае не забыть и не загружать лищний раз свой мозг думая что константа а что нет
i
хочется добить, щас работает, но если нажать на кнопку а потом на инпут или наоборот, то фокус с родителя сбивается
Егор
какая константа?
const inpurRef = useRef(null);
Dmitriy
const inpurRef = useRef(null);
потому что через const обьявлена?
Asan
кто использовал redux-form не подскажете как там первоначальное значение задать в input?
Егор
Тут даже не совсем в этом дело. А в том, что на момент срабатыания эффекта реф ещё может быть не инициализирован, а нам нужен именно момент того, когда появляется инпут
Не, причем тут это. Все что объявляется внутри компонента должно быть в зависимостях, что бы не было вот таких вот багов.
Егор
Я setState и подобные функции не добавляю что бы код упростить, но может тоже стоит.
Dmitriy
Это то что рекомендует React.
рекомендует в зависимости добавить то что никогда не изменится?
Егор
это бессмысленно, реакт гарантирует идентичность
Ты Дорофеева не читал? Мыслетопливо и т.д. Возможности человеческого мозга ограничены, не стоит на них полагаться и нужно предупреждать возможные ошибки.
Kurzdor
Народ, я видимо очень туплю или что то не понимаю почему у меня при отправке изображения сервер орет мол нету изображения и в девтулзах вообще пишет андефайнед на изображение, хотя я могу отобразить превью из него
Kurzdor
Егор
рекомендует в зависимости добавить то что никогда не изменится?
Еще раз - тебе привели пример когда может измениться. Если input отрисуется только при каком-то условии
Егор
И держать в голове такие вещи бессмысленно и потенциально баги могут быть (вначале рисовали инпут всегда - а потом добавили условие, и забыли в зависимости добавить
Dmitriy
Ты Дорофеева не читал? Мыслетопливо и т.д. Возможности человеческого мозга ограничены, не стоит на них полагаться и нужно предупреждать возможные ошибки.
я доку реакта читал, а всякий бред не читаю. А если человек просто так добавляет что то в зависимости эффекта, это говорит о том что он не понимает до конца что происходит
Егор
Kurzdor
Бан
i think not
Norick
Помогите найти нормальный плагин для отображения контента при скролле на реакт-тайпскрипт
Егор
Кажется чатик превратился в помойку)