Nikita
пытаюсь использовать basename у react-router для subdir мультиязычности (/ru, /en), но динамическая смена basename не обновляет урлы у NavLink
Sergey
я обычно делаю просто /:lang/pages/:pageId
Nikita
вместо basename? Ух, тогда придеться NavLink или Link заворачивать в свой компонент ( надеялся на чуточку магии, но лан
Oleg
Поддерживаю. У меня вообще нет нигде Redux. А когда пришел тимлидом и архитектором все заставил переписать, благо немного было. Так народ там таких чудес натворил скрещивая Redux и ApolloClient, что плакать хотелось. Когда я объяснил что Редакс нафиг не нужен, и что глобальное состояние надо хранить в адресной строке (чтоб можно было скопировать и отправить ссылку по телеге или почте, открыть и увидеть тот же экран что у тебя) а фетчингом данных с сервира занимается АполлоКлиент. То уже буквально через месяц народ сильно повеселел, выпилив кучу мусорных экшенов и редьюсеров. И стал реально кайфовать. Прям реально несколько раз подходили и благодарили, те кто топил за Редакс. Резюме: глобальный стейт в адресной строке, а не редаксе. Так как есть ограничение по размеру урла, то народ не засовывает всякий мусор в этот стейт. А с умом уже подходит к выбору параметров.
в строке? это рофл?
Daniil
в строке? это рофл?
Откуда мне знать)
Nikita
не обновит. Нужно компонент линк делать свой, где будешь подставлять lang
я конечно накидывал key на роутер, но поведение не понравилось, так что походу будет lang
Sergey
Новая подборка статей и новостей по React экосистеме. - React 16.10 - TDD с React Testing Library и Jest - Сохранение глобального стейта в чистоте - Переиспользуемые компоненты на примере форм https://t.me/this_week_in_react
Daniil
бля на прошлых неделях ведь был 16.9
Daniil
а не, я ебусь в глаза по чейнчлогам
Андрей
А вы с useSubscription реакта игрались?
Oleg
можно с помощью материал юай делать формы? то есть, чтоб можно было табам по форме гулять, и по энтеру шёл onSubmit? нашёл это, не оно?
Oleg
а кто мешает обернуть инпуты нативным form ?
ну, я обернул, написал <form id="my-id" onSubmit={() => {console.log('qwe');}}>. на энтер onSubmit не вызывается.
Oleg
то есть, хочется, чтоб если фокус был на любом инпуте, по энтеру форма сабмитилась. ну, как у всех нормальных людей.
▲rtemiy
ну добавь листенер
Oleg
ну там же есть какой-то нативный api у формы.
Пöß d'Ivoire
есть но видимо кнопка сабмита имеет preventDefault у вас
Oleg
halp, написал что-то вроде этого <form onSubmit={() => {console.log('qwe');}}> <Grid item xs={5}> <Input value={dropDownForm.label} name="label" id="drop-down-input-label" label="Label" onChange={onChange} /> </Grid> <Grid item xs={5}> <Input value={dropDownForm.value} name="value" id="drop-down-input-value" label="Value" onChange={onChange} /> </Grid> <Grid item xs={2}> <Button onClick={onConfirm} className={classes.dropDownItemButton} > Add </Button> </Grid> </form> 0 реакции на энтер. что я делаю не так?
Виктор
а у теья баттон это баттон?
Виктор
ну лан пойду в доку схожу
Oleg
ну лан пойду в доку схожу
ну, это обёртка на материалом. но там есть баттон.
Oleg
ну лан пойду в доку схожу
не в этом проблема? баттон по сути не баттон, а див -> баттон.
🦜
<form className={classes.form} onSubmit={handleLogin}> ---- Inputs ---- <Button type="submit" fullWidth variant="contained" color="primary" className={classes.submit} > Sign In </Button>
Виктор
он вроде по дефолту себя должен как сабмит вести если не указан
Виктор
мейби у тебя всплытие стопается в хандлере
Oleg
убери онклик с кнопки
пофигу. сделал "родную" кнопку из html. работает, но не так. я ожидал просто консоль лог, а он ещё в парамс данные добавляет. это лечится или я не то делаю? а, ну да. превент дефолт.
Oleg
с ButtonBase из материала не работает. меджик.
Артем
а можете подсказать канал по редуксу? в пм. Или можно тут спрашивать?
🤴👷‍♂️🦸‍♂️🧚‍♀️
А нормально ли юзать переменные объявленные в css через styled components?
🤴👷‍♂️🦸‍♂️🧚‍♀️
вай нот
ну неявно выглядит, не придется ли пояснять как это так?
🦜
@redux_ru
Он еще живой))
Ivansky
css-in-js зло
Ivan
css-in-js зло
атветь
Ivansky
люди ведь даже не понимают какую проблему этот подход решает, а используют потому что модно молодежно)
Алексей
атветь
Становится непонятно как тестировать верстку
Oleg
const labelRef = useRef(null); const onConfirm = (e) => { e.preventDefault(); addItemToDropDown(activeField.id, dropDownForm); resetDropDownForm(); labelRef.current.focus(); }; <Input ref={labelRef} /> может кто сказать, почему выдаёт focus not a func?
Андрей
на onConfirm
А что такое Input?
Oleg
А что такое Input?
ну, это мой инпут. я хочу перевести фокус на первый элемент. на confirm
Oleg
forwardRef использовал?
ну вон же, useRef
Алексей
ну вон же, useRef
И что он должен сделать по-твоему ?
Андрей
ну вон же, useRef
Читай доку. Это разные вещи.
Андрей
И что? Реф берётся от input, а не от твоего компонента.
Oleg
какое отношение он имеет? мне нужен ref первого инпута. я в нём и пишу ref={QWEQWEQWEQWE}
Алексей
так и как я должен это написать?
читай доку на реф :) реф у тебя создастся на интсанс реакт компоненты, а не на нативный элемент. у этой рефы нет focus
Андрей
какое отношение он имеет? мне нужен ref первого инпута. я в нём и пишу ref={QWEQWEQWEQWE}
С помощью этой штуки ты можешь нормально отдать ссылку на dom ноду, а не на инстанс своего компонента.
Алексей
у инпута нет фокуса?
у твоего инпута нет
Андрей
у инпута нет фокуса?
Ты понимаешь как работает проп ref?
Oleg
Ты понимаешь как работает проп ref?
бля, точно... это обёртка...
Andrey
очевидно, нет
реф это просто объект, который можно мутировать и связывать с каким-то элементом
Sergey
атветь
1. Стили в JS хранятся (время парсинга/компиляции) 2. Читаемость структуры компонентов в html П.Н. Серебрянной пули не существует.
Andrey
Ребят, а есть статьи, где сравнивают стейт менеджеры текущие для реакта?
Daniil
Тебе этого чата мало?)
petyappetrov
overmindjs крутой
Алексей
Тебе этого чата мало?)
а здесь это обсуждают ?
Andrey
ну тут у большинства людей вкусовщина, типо я пользуюсь - мне нравится. Статистику бы глянуть.