А_Greece 🌸
Никита Суханов
https://codepen.io/Shrek556/pen/gJxPaE?editors=0010
Никита Суханов
всем привет. проблема : почему - то значение инпута всегда приходит с опозданием, то есть я написал в инпуте —- lol , а приходит lo . Что не так? (данные приходят с сервера, inputValue - значение с инпута
Никита Суханов
useEffect(_ => { fb.getData() .then(res => { updSearchBar( res.elements.filter(({ name }) => name.toLowerCase().includes(inputValue) && !!inputValue) ) }) .catch(_ => console.log('ЧТо то наебнулось')) }, [fb, inputValue])
Никита Суханов
решил так
Nikolai
в fb ничего не отправляется
inputValue вы туда передаёт, а он ещё не поменялся, потому что setInputValue асинхронная
Никита Суханов
arts
Из useState ты получаешь текущее значение стейта. Дальше ты меняешь стейт, но значение переменной-то не меняется
Никита Суханов
почему?
я выше кинул решение. так?
arts
почему?
А почему оно должно меняться?
Никита Суханов
А почему оно должно меняться?
а ну по сути я же констнту объявил
Никита Суханов
действительно
Никита Суханов
А почему оно должно меняться?
а что же меняется тогда?
arts
а ну по сути я же констнту объявил
Да без разницы. Ты получил из стейта просто строку
Nikolai
Все смешалось, кони, люди)
Никита Суханов
Никита Суханов
просто не очень вас понимаю
Никита Суханов
что вы хотите сказать?
Никита Суханов
inputValue
это ясно
Никита Суханов
это ясно
я тогда не понимаю, как стейт вообще объявляется, если сам стейт - константа
Nikolai
вот так вроде бы получилось, верно?
Как вариант, да. Только понимания судя по всему вам это не дало)
arts
Текущее значение инпута находится в e.target.value, а в inputValue — предыдущее значение
Никита Суханов
arts
Стейт меняется асинхронно
Да это в данном случае даже не важно
Никита Суханов
Текущее значение инпута находится в e.target.value, а в inputValue — предыдущее значение
так в смысле, я же обновляю стейт, почему при обновление inputValue не меняется на текущее?
arts
так в смысле, я же обновляю стейт, почему при обновление inputValue не меняется на текущее?
Потому что inputValue — это просто строка, она никак не связана со стейтом. Новое значение ты там получишь только при следующем вызове useState
Никита Суханов
что же связано со стейтом?
я передаю inputValue в другой компонент, это что значит, он никогда вообще не изменится
arts
что же связано со стейтом?
Ничто не связано. Если хочешь текущее значение, используй e.target.value
Никита Суханов
Что мешает?
так а нахера стейт то нужен тогда?
Никита Суханов
мне нужно хранить значение инпута. где я его буду хранить?
arts
так а нахера стейт то нужен тогда?
Новое значение у тебя там будет при следующем рендере
Никита Суханов
Никита Суханов
то есть так я сделать не могу?
Никита Суханов
ну то есть получу предыдущее значение?
arts
ну то есть получу предыдущее значение?
Если передашь туда e.target.value, то текущее
Никита Суханов
Если передашь туда e.target.value, то текущее
как я передам туда e.target.value?
Никита Суханов
как я передам туда event?
arts
как я передам туда e.target.value?
Так же, как и inputValue
arts
как я передам туда event?
Не евент, а значение инпута
Никита Суханов
Не евент, а значение инпута
ну так inputValue и есть значение инпута, просто не туекущее
Никита Суханов
arts
Я себя сейчас фейспалмом убью
Никита Суханов
arts
Отстань уже от inputValue, там не то, что тебе надо
Никита Суханов
Nikolai
inputValue - стейт, event.target.value - новое значение стейта
Pavel
так зачем же стейт тогда?
Стейт нужен чтобы перересовать dom
arts
inputValue — это не стейт. Это строка, которую ты получил из стейта до его изменения.
Никита Суханов
let value = null; const getInputValue = e => { value = e.target.value.toLowerCase(); };
Никита Суханов
так что ли?
Nikolai
Вы до реакта js использовали вообще?
Red[$]hort
Коллеги, подскажите пожалуйста, как в вебпаке добавить кастомный экспорт в какой-нибудь js-файл?
Nikolai
Коллеги, подскажите пожалуйста, как в вебпаке добавить кастомный экспорт в какой-нибудь js-файл?
Webpack — русскоговорящее сообщество Обсуждения webpack, лоадеров, плагинов и сборок Правила: http://bit.ly/our_etiquette См. также: @rollup_ru, @react_js, @vscode_ru, @macos_ru, @js_ru https://t.me/webpack_ru
Никита Суханов
Зачем функцию городить?
как зачем? там цепочка событий
Никита Суханов
Red[$]hort
Всмысле
Есть файл с export something1, export something2, хочу добавить свой export something3 прямо через вебпак
Nikolai
Зачем тут вебпак)
Red[$]hort
Зачем тут вебпак)
Мне нужно через вебпак, без внесения правок в оригинальный файл с экспортами
Никита Суханов
Зачем функцию городить?
бля. что не так то?
Nikolai
Мне нужно через вебпак, без внесения правок в оригинальный файл с экспортами
Лоадер кастомный напишите, но я не очень понимаю к чему такие извращения
Red[$]hort
Лоадер кастомный напишите, но я не очень понимаю к чему такие извращения
Хочу версию из package.json добавить в экспорт, чтобы импортить его в коде потом
Nikolai
Хочу версию из package.json добавить в экспорт, чтобы импортить его в коде потом
Вы можете заимпортить package.json просто и взять это из него напрямую