Maxim
Ну, т.е. вообще-то это в конфиге вебпака делается. Но в cra вроде все уже встроено.
Мира
CRA
Мира
Без cra ясен хрен нужно добавить вручную через сборщик
Maxim
Ну так вот же: https://create-react-app.dev/docs/post-processing-css/
Alex
Народ, подскажите плз вывести svg по id Сейчас рабочий HTML вот такой <svg> <use xlinkHref="free-symbol-defs.svg#cui-speedometer"></use> </svg> Сделал следующее: import SVG from 'react-inlinesvg'; import logoSmall from 'logo.svg'; import SVGSymbols from 'free-symbol-defs.svg'; В render return ( <SVG src={ logoBase } /> <SVG src={ SVGSymbols#cui-speedometer } /> ) Logo выводит, на SVGSymbols ругается InlineSVGError: Not Found
Мира
Ну так вот же: https://create-react-app.dev/docs/post-processing-css/
Шарю, поэтому и спрашиваю Слишком очевидное решение, я в это как то даже не поверил
Мира
Видимо да, хватит этой настройки А где почитать что именно означает "last 2 versions" / "not dead"?)
Maxim
Шарю, поэтому и спрашиваю Слишком очевидное решение, я в это как то даже не поверил
Ну, я бы скорее верил официальной доке, чем чуваку в чате )))
Arczi
парни внутри в functional component вы пишите фнукции нормальные или arrow functional ?
Maxim
парни внутри в functional component вы пишите фнукции нормальные или arrow functional ?
Дело вкуса. Договаривайся с командой. Если один - пиши как нравится.
Мира
Стрелки короче, вот и вся разница) (В контексте объявления независимой компоненты)
Maxim
Только не забывайте, что создавая функцию внутри FC вы создаете новую функцию каждый рендер. И если вы её передаете в пропсы, то дочерний компонент будет ререндерится. Используйте useCallback, если это критично.
Serhii
Привет, ребята подскажите кто то использовал саги в interceptors axios`a?
Serhii
const dispatch = useDispatch(); вызывает Exception Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
Serhii
Хелп плез
Arczi
Так как useCallback, то стрелки.
выши отписали что без разницы
Serhii
😂😂а как тогда вызвать сагу из interceptora?))
Maxim
выши отписали что без разницы
Я ниже добавил замечание про ререндер чайлдов.
Kurzdor
Нпрод, правильно понимаю, что reselect это компьютеды для редакса?
Ivan
Очень хочется стрелочные генераторы, прям не могу
Maxim
😂😂а как тогда вызвать сагу из interceptora?))
Диспатчите через store.dispatch(), если у вас есть доступ к store. Но это решение несовместимо с SSR.
Kurzdor
Йеп
И редакс их вообще из коробки не дает?
Dmitriy
Kurzdor
Просто есть у вуя вуех, то там все из коробки
Maxim
И редакс их вообще из коробки не дает?
Нормальную мемоизацию - нет, не дает. Селекторы в mdtp будет вызываться на каждое изменение стора.
Arczi
Нормальную мемоизацию - нет, не дает. Селекторы в mdtp будет вызываться на каждое изменение стора.
тоесть если буду использывать стрелковую функции тогда я могу быть спокоеен что дочерные компоненты будут ререндерится потому что не создается новая функция ?
Maxim
есть ссылка ан какой то пример?)
У меня нет. Если у вас есть доступ к объекту store, то просто используйте store.dispatch(). Вы можете как-то запихнуть store в интерсептор еще при инициализации приложения. В общем, на что фантазии хватит. Но это все не выглядит хорошей идеей.
Ivan
Нет. Вы можете быть спокойны только если функция объявлена за пределами компонента.
Мне кажется, что вопрос был про connect. Он всегда за пределами компонента
Arczi
Нет. Вы можете быть спокойны только если функция объявлена за пределами компонента.
ок, запутался, нет разницы какая функция стрелковая или нет
Юрий
такой вопрос, есть модалка для подробностей юзера, когда модалка открывается она в пропсах принимает инфу основную и должна подгружать доп инфу этого юзера, в useEffect можно сделать запрос и после этого сетить доп данные в стор, и отображать их в модалке. Но тут такая делема, запрос на доп инфу идет с id дополнительным, который иногда null, что тогда делать? Проверять ID и потом делать запрос или всегда отправлять в любом случае, но если приходит ошибка, то ставить дефолные поля вместо инфы?
Yury
конечно
Юрий
конечно
То есть можно создать в сторе дефолтные значения, которые будут отображаться и они будут обновляться только если новые прийдут ?
Anonymous
Всем здравствуйте? Как добавить onSelect на input ratio? <input type="radio" value="Credit" onSelect={this.handle_change} name="type"/> - Не работает
I
реакт генерит какие-нибудь id для своих компонентов, чтобы можно было получить и использовать или нужно юзать какой-то отдельный модуль?
Vlad
Народ, как вообще провести такой тест: it("add tag", async () => { const tags = []; const addTag = tag => { tags.push(tag); }; const removeTag = jest.fn(); const { queryByTestId, queryByPlaceholderText, getByText, debug } = render( <Tags tags={tags} addTag={addTag} removeTag={removeTag} /> ); const button = queryByTestId("add-button"); const input = queryByPlaceholderText("Please Enter Tag"); fireEvent.change(input, { target: { value: "new" } }); fireEvent.click(button); debug(); // const tag = await waitForElement(() => getByText("test-tag")); // wait(expect(tag).toBeInTheDocument()); const tag = await waitForElement(() => getByText("new")); expect(tag).toBeInTheDocument(); });Просто есть инпут и копка, нужно проверить что map отобразил компонент с таким текстом, после добавления\
Anonymous
onChange
Пробовал, так же не работает
Vladimir
Ребят, как можно переписать функиональный компонент в классовый, чтобы в классовом можно было использовать dispatch в render методе? let AddTodo: any = ({dispatch}) => { .... }; AddTodo = connect()(AddTodo); export default AddTodo; Пытаюсь так: class AppTodo extends Component { constructor(props) { super(props); const {dispatch} = props; console.log('[AppTodo] works...', dispatch); } render() { let input; return ( <div}}> dispatch(addTodo(input.value)); </div> ) } } export default connect()(AppTodo); Получаю ошибку при компиляции: Cannot find name 'dispatch'. TS2304
I
что за словарь?
ассоциативный массив обычный. Нужно стейты записать и сравнить
Sergey
Это шаблон, не полный код
ну Cannot find dispatch как бы намекает на что-то) Есть опыт работы на js то?)
I
ассоциативный массив обычный. Нужно стейты записать и сравнить
не сравнить, а хранить для add/removeEventListener. Так просто в стейтлессе они не могут увидеть обновленный стейт
Тимофей 🛴
ассоциативный массив обычный. Нужно стейты записать и сравнить
Подними стейты выше или юзай стейт менеджер
Vladimir
ну Cannot find dispatch как бы намекает на что-то) Есть опыт работы на js то?)
я могу в render методе напрямую использовать диспатч из пропросов?
I
Подними стейты выше или юзай стейт менеджер
не, у меня есть компонент и я хочу в нём инкапсулировать его логику
Vladimir
нет, dispatch неоткуда взять
Тогда не понимаю
I
Ты что то делаешь не так
ну вот у тебя есть селект, кастомный из дивов. Как ты сделаешь чтобы клик вне него сбрасывает его состояние expanded