Size: a a a

React — русскоговорящее сообщество

2020 July 16

ТФ

Татьяна Фомина... in React — русскоговорящее сообщество
Igor N
А разве в банки берут фуллстеков? Всегда думал, что предпочтительней полноценные разработчики, а не "ни рыба, ни мясо")
Бывает по-разному. Коллега был бэкенд разрабочиком на C#, ушел на другую работу, там стал фулл-стеком С# + фронт на Angular
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Oleg 🍺 Luchanso
Гайз, вопрос знатокам роутера
Используется Create React App + React Router, всё это собрано yarn build и положено в докер образ с nginx

Вопрос: какие есть способы задать роутеру basename при запуске контейнера?
https://reactrouter.com/web/api/BrowserRouter/basename-string

У меня есть пару решений, но оно всё выглядит костыльными, вдруг кто встречался с подобной проблемой
Предыстория: есть образ приложения, который хотелось бы запускать на любом /pathname
Т.е после compile? А статика тоже через pathname будет доступна? Или только роутинг?
Я официальных способов не знаю, но:
Если первое, то вряд ли получится, т.к ссылки на чанки придётся как-то динамически формировать
Если второе, то можно через апи или статический json загружать, но это такое. Или внутрь html добавлять script с глобальной переменной при старте контейнера
источник

ES

Eugene Sternin in React — русскоговорящее сообщество
Igor N
А разве в банки берут фуллстеков? Всегда думал, что предпочтительней полноценные разработчики, а не "ни рыба, ни мясо")
Банк - чаще всего - это много проектов и сервисов. Где то по 10 фронтов/беков, где-то 2 фулстека хватит.
источник

OL

Oleg 🍺 Luchanso in React — русскоговорящее сообщество
Evgeniy Mokeev
Т.е после compile? А статика тоже через pathname будет доступна? Или только роутинг?
Я официальных способов не знаю, но:
Если первое, то вряд ли получится, т.к ссылки на чанки придётся как-то динамически формировать
Если второе, то можно через апи или статический json загружать, но это такое. Или внутрь html добавлять script с глобальной переменной при старте контейнера
Вот и я думаю через генерацию json, но это корявое решение
источник

Д

Діма in React — русскоговорящее сообщество
Привет.
Может кто сталкивался.
<ReactSummernote
                       value = 'content'
/>
Не работает на локальном сервере.
Вот беру просто файл app.js перетягиваю по FTP и работает
А на локалке нет.

Именно ничего не пишет в контенте
пакет так и называется React-Summernote
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Oleg 🍺 Luchanso
Вот и я думаю через генерацию json, но это корявое решение
Да, но зато бонусом можешь просто адрес апи и метрики менять, на разные контуры раскатывать и вообще много чего
источник

MD

Marat Dolotov in React — русскоговорящее сообщество
Здравствуйте! У меня есть два компонента: один родительский (РК) другой дочерний (ДК). РК монтируется только один раз а ДК постоянно обновляемый отслеживает redux.store. И еще ДК обворачивается в react.fragment. Когда в ДК добавляется новые элементы всё хорошо монтируется а вот когда из ДК убирается всё валится дает ошибку:

react-dom.development.js:7735 Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

Самое интересное если из ДК код вставить в РК то всё работает, только постоянно, когда сторе изменяется РК перемонтируется. Так, как РК это карусель при перемонтировке всё с заново начинается а там где остановился. По этому решил его вытащить и разделить от ДК. Как можно решить такую неприятную задачу, подскажите кто знает🙏
источник

a

artalar in React — русскоговорящее сообщество
@luniela только текстом
источник

S2

Still 2095 in React — русскоговорящее сообщество
Как добавить реакт приложению прелоадер который единожды при первом запуске страницы появится. Спасибо
источник

MD

Marat Dolotov in React — русскоговорящее сообщество
а я только подключил наушники, чтоб послушать)
источник

ИЗ

Игорь Завирюха... in React — русскоговорящее сообщество
Still 2095
Как добавить реакт приложению прелоадер который единожды при первом запуске страницы появится. Спасибо
useEffect
источник

NS

Nurlykhan Salamatov in React — русскоговорящее сообщество
Still 2095
Как добавить реакт приложению прелоадер который единожды при первом запуске страницы появится. Спасибо
добавь loaderoncestate = true


{this.state.loaderoncestate && <YourLoader /> }
источник

S2

Still 2095 in React — русскоговорящее сообщество
спс
источник

NS

Nurlykhan Salamatov in React — русскоговорящее сообщество
не забудь менять стейт в didmounte
источник

B

Backend Разработчик... in React — русскоговорящее сообщество
David Bowie
Например, в стейте могут храниться две версии сложного списка, а мы сделали поверхностное копирование. Тогда при изменении данных в первом списке второй тоже будет меняться. Или если у нас в сторе сложный объект, мы прямо из стейта его взяли и поменяли без копирования. Соответственно, в стейте этот объект тоже изменился. В таком случае нам setState не нужен, не чувствуешь подвох?)
.concat() создаёт поверхностную копию и тем самым Стейт изменяется ещё до вызова setState, так что смысла в нем никакого нет.

Я не нашел другого выхода, как написать:
onChangeName(name, index) {
   const users = JSON.parse(JSON.stringify(this.state.users))
   users[index].name = name
   this.setState({users})
 }

И что, все таким же образом меняют state?))
источник

DB

David Bowie in React — русскоговорящее сообщество
Backend Разработчик
.concat() создаёт поверхностную копию и тем самым Стейт изменяется ещё до вызова setState, так что смысла в нем никакого нет.

Я не нашел другого выхода, как написать:
onChangeName(name, index) {
   const users = JSON.parse(JSON.stringify(this.state.users))
   users[index].name = name
   this.setState({users})
 }

И что, все таким же образом меняют state?))
Какую копию делать - поверхностную, полную или вообще никакую - надо на тип данных смотреть, если массивы и объекты - то полную копию делаем. JSON.parse криво работает со сложными типами данных и порядок свойства не гарантирован. Для глубокого копирования юзают _.cloneDeep из lodash или сами пишут функцию
источник

DB

David Bowie in React — русскоговорящее сообщество
В этом примере не нужно копию делать, потому что name - простой тип
источник

ei

export default - зло... in React — русскоговорящее сообщество
Backend Разработчик
.concat() создаёт поверхностную копию и тем самым Стейт изменяется ещё до вызова setState, так что смысла в нем никакого нет.

Я не нашел другого выхода, как написать:
onChangeName(name, index) {
   const users = JSON.parse(JSON.stringify(this.state.users))
   users[index].name = name
   this.setState({users})
 }

И что, все таким же образом меняют state?))
Пздц, индексы
источник

DB

David Bowie in React — русскоговорящее сообщество
David Bowie
В этом примере не нужно копию делать, потому что name - простой тип
И тут я вру, тут массив объектов как раз)
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Backend Разработчик
.concat() создаёт поверхностную копию и тем самым Стейт изменяется ещё до вызова setState, так что смысла в нем никакого нет.

Я не нашел другого выхода, как написать:
onChangeName(name, index) {
   const users = JSON.parse(JSON.stringify(this.state.users))
   users[index].name = name
   this.setState({users})
 }

И что, все таким же образом меняют state?))
Примерно да, но через деструктуризацию
users: {
 ...this.state.users,
 [index]: {
   ...this.state.users[index],
   name
 },
}
Или используют всякие immerjs и immutablejs
источник