Red[$]hort
Вы можете заимпортить package.json просто и взять это из него напрямую
Не вариант. Нашел такой пакет, но он каменты добавляет https://www.npmjs.com/package/webpack-auto-inject-version
arts
бля. что не так то?
let [inputValue, SetInputValue] = useState(''); ... inputValue = e.target.value.toLowerCase(); SetInputValue(inputValue);
Nikolai
Не вариант. Нашел такой пакет, но он каменты добавляет https://www.npmjs.com/package/webpack-auto-inject-version
А в чем проблема? Это же просто json, импортите его как переменную и парсите, получаете объект. Возможно json-loader какой нибудь нужно подключить ещё, чтобы заимпортилось нормально
Никита Суханов
let [inputValue, SetInputValue] = useState(''); ... inputValue = e.target.value.toLowerCase(); SetInputValue(inputValue);
я делаю то же ссамое, минуя стадию inputValue = e.target.balue
arts
и зачем тогда setInputValue?
Чтобы обновить стейт, очевидно
arts
я делаю то же ссамое, минуя стадию inputValue = e.target.balue
В inputValue = ... ты получаешь текущее значение
Никита Суханов
Чтобы обновить стейт, очевидно
что же такое стейт, если не переменная inputValue
Никита Суханов
В inputValue = ... ты получаешь текущее значение
если я не пишу этого, а сразу setValue(e.target.value) , что то меняется разве?
Никита Суханов
Иммутабельный обьект
так чем он представлен тогда?
Никита Суханов
arts
что же такое стейт, если не переменная inputValue
Ещё раз тебе повторяю, это НЕ стейт, а строка, которую ты получил из стейта. Она не поменяется из-за того, что ты сделал SetInputValue
Никита Суханов
Ещё раз тебе повторяю, это НЕ стейт, а строка, которую ты получил из стейта. Она не поменяется из-за того, что ты сделал SetInputValue
так что поменяется? я передаю inputValue вниз, и остальные компоненты видят это изменение, что же тогда меняется???
Yura
inputValue вы туда передаёт, а он ещё не поменялся, потому что setInputValue асинхронная
а в setstate можно же передать prevState ... или дисктрукторизация вроде всегда актуальное отдает
Nikolai
Стейт каждый рендер приходит новый. Реакт сравнивает предыдущий стейт и новый, чтобы понять какие части dom перерисовать. Поэтому setState работает асинхронно. И в переменной inputValue хранится значение из dom, но в момент события изменения input это значение ещё не изменено(вы только сказали реакту его изменить). Вы ожидаете синхронного поведения, но это так не работает
Никита Суханов
Yura
нету у вас текущего стейта , только предыдущий
как это нет ? после ответа от сервера серый эту строку и свой стайт . Не много не понимаю что ты хочешь сделать
Nikolai
Стейт и реальный дом(например атрибут value) это не одно и то же. Их синхронизирует реакт
arts
так где же он хранится?
Стейт — это некая абстрактная хуйня в оперативной памяти, из которой можно брать значения при помощи useState и менять его при помощи функции, взятой оттуда же. Полученные значения не меняются. Это как "фотография" стейта, сделанная в момент вызова useState.
Daniil
Ты все ещё не скинул полностью код ?)
arts
"из которой можно брать значение" - ну?
Баранки гну. Ты уже взял это значение и положил его в inputValue. SetInputValue поменяет стейт, на эту переменную он повлиять не может.
Никита Суханов
я ведь как-то передаю эту переменную вниз, и она меняется
Никита Суханов
arts
Когда компонент снова вызывает useState
Никита Суханов
Она меняется при СЛЕДУЮЩЕМ рендере
а ты говоришь, что она не меняется
Никита Суханов
const [searchBar, updSearchBar] = useState([]);
Никита Суханов
это строка вызывается при каждом рендере хочешь сказать?
Никита Суханов
наверное ты хочешь сказать, что вызывается updSearchBar(), и при ре-рендере searchBar обновлчется?
Yura
где это строка номер? а то я что то не вижу
arts
наверное ты хочешь сказать, что вызывается updSearchBar(), и при ре-рендере searchBar обновлчется?
useState вызывается при каждом рендере и возвращает текущее значение стейта
arts
Да
Никита Суханов
а функция просто говорит : когда будешь ре-рендерить, положи в переменную такое значение, которое передано как аргумент, верно?
Никита Суханов
arts
Именно
Nikolai
Nikolai
Nick что по твоему выведет код из скриншота в консоль?
Никита Суханов
0
Nikolai
ну так же и стейт реакта условно работает, с точки зрения доступа к нему
arts
ну так же и стейт реакта условно работает, с точки зрения доступа к нему
Тут вопрос-то не в асинхронности. Человек не понимал, почему не изменяется inputValue после изменения стейта.
Никита Суханов
ну так же и стейт реакта условно работает, с точки зрения доступа к нему
ты создал переменную, которая никогда не меняется и консолишь. втф
Никита Суханов
после рендеринга
arts
так стоп. мы же только что пришли к тому что изменяется
При следующем вызове. В рамках одного вызова не меняется
Nikolai
ок. а так что будет в консоли?)
Никита Суханов
{a : 0}
Никита Суханов
связь не понимаю
Никита Суханов
можно было бы стейт консолить, ничего не изменилось бы. и почему state через let?
Nikolai
потому что setState его мутирует
Никита Суханов
потому что setState его мутирует
const [searchBar, updSearchBar] = useState([]); —- здесь тоже
arts
потому что setState его мутирует
Не мутирует, а кладёт туда новый объект
arts
const [searchBar, updSearchBar] = useState([]); —- здесь тоже
Здесь нет. Здесь при каждом рендере создаётся новая переменная.
Никита Суханов
Здесь нет. Здесь при каждом рендере создаётся новая переменная.
вот так понятнее. А когда нужно положить что то другое, реакт ищет вызов updSearchBar и в эту переменную кладет аргумент, верно?
Nikolai
arts
вот так понятнее. А когда нужно положить что то другое, реакт ищет вызов updSearchBar и в эту переменную кладет аргумент, верно?
Нет. После рендера скоуп функции уничтожается вместе со всеми переменными, при следующем рендере создаётся новый скоуп, переменные объявляются заново, и вызов useState кладёт туда новое значение стейта.
Никита Суханов
которая обновляет стейт
arts
Да.
Dmitriy
Шо тут дока яро обсуждается?
Никита Суханов
Да.
большое спасибо
Maksim
знает кто как заимпортить сксс стили в гатсби глобально, чтобы не пришлось импортить в каждой странице?
Maksim
пробовал вот так вот, но чет не выходит, даже ошибок никаких нет
Dmitriy
знает кто как заимпортить сксс стили в гатсби глобально, чтобы не пришлось импортить в каждой странице?
Write your stylesheets in SASS/SCSS and require or import them as normal. Пойди посмотри как обычные стили глобально вставляются
Dmitry
Парни подскажите как лучше учить React?)
arts
Парни подскажите как лучше учить React?)
Запилить на нём что-нибудь
Yura
Запилить на нём что-нибудь
Во я к этому и шел тупо берешь и делаешь хоть что то )) Я так учу - тяжко не узнаешь быстрее