Sergey
Anonymous
ну так ты сделай что он просит))) Сложно угодить реакту?
Сложно, когда с ним знаком всего ничего)
Sergey
Сложно, когда с ним знаком всего ничего)
ну так он тебе говорит прям что делать) Тут сложно если только с js знаком где-то также
Andrii
он зацикливается, потому что getApi у тебя меняется. ее надо стабилизировать через useCallback
Ну внутри getApi, я новый инстанс класса создаю, дёргаю API и Math.random вызываю. А что ты имеешь в виду под словом меняется?
Sergey
Плохая новость….
ну тогда лучше сперва в js разобраться
Anonymous
ну тогда лучше сперва в js разобраться
Тогда вопрос снят с молотка)
Roman
Ну внутри getApi, я новый инстанс класса создаю, дёргаю API и Math.random вызываю. А что ты имеешь в виду под словом меняется?
функция создается на каждый рендер заново const YourComponent = () => { // const getApi = () => {} вместо этого const getApi = useCallback(() => {}) // вот это useEffect( () => { getApi() }, [getApi] ) }
Anonymous
Почему нужно так много кода для самых основных компонентов которые встречаются на странице? Можно ли как то этот весь кодо-ад упростить? Нечерта не понятно, из -за чего так много всего. Каждый участок кода и нужно по новой вникать, т.к синтексис и логика не повторяеться вобще
A
Как в реакте на тег а в href давать пустую ссылку? Типа как href="javascript:void(0)
A
Чтобы он не изменял URL при нажатии на кнопку из а тега
Sergey
Чтобы он не изменял URL при нажатии на кнопку из а тега
так не пиши href вообще. А лучше видимо это должна быть всё же кнопка))
Sergey
href = null зафигач если хочется
A
Если не писать href то курсор изменяется
Sergey
href = null зафигач если хочется
вообще не писать как-то проще всё же
A
Ладно добавил просто своиство в css и убрал href, спасибо за подсказку
A
А как в реакте правильнее делать сворачивающийся sidebar? Изменяя css или через рендер?
Sergey
Ладно добавил просто своиство в css и убрал href, спасибо за подсказку
кнопкой куда уместнее, если что. Если нету перехода, то это кнопка
Sergey
А как в реакте правильнее делать сворачивающийся sidebar? Изменяя css или через рендер?
в реакте также как и на чистом js. Разве что тут вместо скрытия можно удалять, ибо легко. Но может аукнуться конечно)
Sergey
мда, не совсем так понял вопрос. В общем как удобно))
Sergey
В таком случае анимация будет работать?
и так и сяк можно чтоб работала. С css конечно проще. Но если в сайдбаре какая-то фоновая штука или ресурсы прям занимаются, то лучше всё же удалять. Вот тут можно анимировать добавление/удаление https://reactcommunity.org/react-transition-group/
A
Спасибо большое за внятный ответ 👍🏻
Sergey
Спасибо большое за внятный ответ 👍🏻
спасибо за внятный вопрос 🤷‍♂️ Не часто такое встречается
Dwight🫀
Ребят, у кого была такая ошибка?
Dwight🫀
Dwight🫀
ничего
Sergey
ничего
и нафига там a тогда? Почему не button?
Anonymous
ничего
Это не ничего
Dwight🫀
Кстати, когда делаю ссылку на какой-то сайт то всё ок. Ругается просто на "#" как я понимаю?
Dwight🫀
и нафига там a тогда? Почему не button?
Потому что в дальнейшем там нужна будет ссылка, это просто для шаблона делал и заметил ошибку
Dwight🫀
напиши #TODO
Спасибо, всё нормализовалось 😅
Anonymous
Там все написано
Denis
Ещё бы читать уметь
нах надо, чат прочитает
Denis
переведет
Dwight🫀
🙊
Anonymous
Действительно. Зачем думать своей головой
Umid
Нужен совет по использованию роутинга c Mobx. Никак не могу понять, как расшарить все сторы для всех страниц. Нашёл 'mobx-react-router', но делать навигацию при помощи метода push кажется немного странным. Что обычно используют в подобных случаях? Или вышеописанный плагин и есть лучшее решение?
Anonymous
Стоит ли использовать Styled Components, или лучше остаться на css module ?
Sergey
Umid
ну так ты определенному компоненту инжектишь нужный тебе стор.
Т.е. по никакой сторонний плагин(кроме react-router-dom) не нужен для этого, верно?
Anonymous
Стоит ли использовать Styled Components, или лучше остаться на css module ?
Это разные технологии, и у них разные области использования
Denis
Т.е. по никакой сторонний плагин(кроме react-router-dom) не нужен для этого, верно?
чтобы получить доступ к нужному стору, нужно его только заинжектить
Umid
чтобы получить доступ к нужному стору, нужно его только заинжектить
А как тогда должна идти цепочка передачи этих самых сторов? index.js передаёт в App, в котором распологается роутер и задаёт определённым роутам определённые сторы, верно? Или если в виде кода, то так: index.js(фрагмент) ReactDOM.render(( <Provider {...stores}> <App /> </Provider> ) , document.getElementById('root')); App.js (фрагмент) <div className="App"> <Router history={history}> <Route path="/" exact component={PokemonsListPage} /> <Route path="/pokemon/:pokemonID" exact component={PokemonPage} /> </Router> </div>
Denis
Нужен совет по использованию роутинга c Mobx. Никак не могу понять, как расшарить все сторы для всех страниц. Нашёл 'mobx-react-router', но делать навигацию при помощи метода push кажется немного странным. Что обычно используют в подобных случаях? Или вышеописанный плагин и есть лучшее решение?
чет сначала не доконца прочитал твой вопрос. если тебе с роутом нужно работать как с mobx стором, то тут да, только плагин типа mobx-react-router и юзать push. Это нормально, компонент Link от роутера под капотом наверное это и делает
Anonymous
Где-то видел статью, в которой говорится, что экспорт дефолт безымянной стрелочной функции из компонента это неочень хорошая практика. А почему так?
Anonymous
больше верьте статьям, которые где-то там видели))) Статью сейчас любая мартышка написать может
Тоесть чем меньше кода, тем лучше? Там никакой контекст не потеряется?
Rustam 👨🏻‍💻
Ребят, помогите советом плиз) Никто не писал СПА под ларку или подобное?) Проблема с соц авторизацией(
Sergey
а, там сказано нехорошая практика, ну слава богу))
Андрей
Где-то видел статью, в которой говорится, что экспорт дефолт безымянной стрелочной функции из компонента это неочень хорошая практика. А почему так?
Потому что дефолт имеет очень некрасивое свойство - имя сущности можно дать любое. И это усложняет дальнейшую жизнь при чтении кода.
Anonymous
а при чём тут про меньше кода?
Нууу... Это же самая короткая запись функции получается, без слова function, потому что стрелочная, и без имени, потому что сразу экспорт дефолт
Rustam 👨🏻‍💻
Или не в той теме спросил?
Sergey
рефакторить проще с именованнами. Если честно непонятно нафига дефолтные были добавлены кроме "совместимости" с commonjs
Sergey
Или не в той теме спросил?
это наверное в чат просто про js. Вроде специфики про реакт никакой. А в чём проблема то?
Anonymous
Понял, спасибо 👍👌
Sergey
Тоесть лучше всё-таки имя давать?
да, при отладке оценишь
Андрей
Тоесть лучше всё-таки имя давать?
У меня только дефолтные экспорты. Исключение - динамические импорты.
Sergey
У меня только дефолтные экспорты. Исключение - динамические импорты.
🤷‍♂️ противоречишь своему предыдущему сообщению?
Sergey
В каких местах?
или жалуешься на жизнь?))