@react_js

Страница 4697 из 5115
DimenSi
27.08.2018
14:52:03
Парни часто ли у вас бывает такое что бек кодер, не хочет отдавать вам данные так как это нужно вам. И вместо этого отдает какие то сложные не плосские данные ?
ну у меня вообще работа строилась с позиции, что мне отдают данные как бек хочет или мы приходим к вместе к одному виду, если меня никак не устраивает, то что он присылает

Efim
27.08.2018
14:54:05
Тут дело может быть не в лене. Если апи открыт то должен быть консистентным, от сюда делать "простое апи для своего сайта" моветон

Google
DimenSi
27.08.2018
14:56:08
прокси сервер на ноде с gql
ну это как-то туу хард

Artyom
27.08.2018
14:56:15
Почему?

Roman
27.08.2018
14:56:44
Почему?
Для ребят эт сложно

Dmitry
27.08.2018
14:56:59
какое-то лишнее усложнение

Roman
27.08.2018
14:57:05
Они сюда пришли верстать на кра

DimenSi
27.08.2018
14:57:37
- Ребята, как построить гараж ? - Купи дом с гаражом!

Artyom
27.08.2018
14:57:48
какое-то лишнее усложнение
Ну, обычно, если апи такое большое и сложное, что встает вопрос в его пересмотре, то прокси gql - это вполне решение

Efim
27.08.2018
14:58:12
Все конечно зависит от проекта, но в 90% случаем преобразование на клиенте допускаются

Artyom
27.08.2018
14:58:14
Но кому-то может быть излишним, конечно, да

Dmitry
27.08.2018
14:58:21
Ну, обычно, если апи такое большое и сложное, что встает вопрос в его пересмотре, то прокси gql - это вполне решение
когда маленькая команда и бек пилит апи для фронта, то не вижу смысла тянуть еще прокси

Artyom
27.08.2018
14:58:47
Google
Roman
27.08.2018
14:58:58
когда маленькая команда и бек пилит апи для фронта, то не вижу смысла тянуть еще прокси
Про это и речи нет. Может у них бек ещё для других сайтов, приложений и т.д

Dmitry
27.08.2018
14:59:12
Если он пилит апи для фронта, че он не форматит его >_>
ну потому что иногда это вызывает костыли на беке

Anton
27.08.2018
15:00:28


Илья
27.08.2018
15:01:17
да ну. Вполне себе может быть оправданно

Roman
27.08.2018
15:02:36
Лучше с реактом запилить

Dmitry
27.08.2018
15:04:25
потому что надо пилить на вью ?)

Max
27.08.2018
15:13:11
Парни часто ли у вас бывает такое что бек кодер, не хочет отдавать вам данные так как это нужно вам. И вместо этого отдает какие то сложные не плосские данные ?
Можно договорится с беком какой формат передачи данных будет удобен обоим но надо не забывать что есть определенные ситуации когда неправильный формат передачи приведет к тормозам. Очень часто делают так что сервер передает даннные вложенными объектами { tasks: [ { id: 1, ... subTasks: [ {id: 1, ...}, {id: 2, ...} ] }, { id: 2, ... subTasks: [ {id: 3, ...}, {id: 4, ...} ] } ] }Хотя правильно передавать данные в плоском, нормализированном виде { tasks: { 1: {id: 1, ..., subTasks: [1, 2]}, 2: {id: 2, ..., subTasks: [3, 4]} ... }, subTasks: { 1: {...}, 2: {...}, 3: {...} 4: {...} } }потому что когда связи между сущностями будут не one-to-many а many-to-many - например нужно передать юзера со списком его друзей и друзей его друзей то попытка передать данные через вложенные объекты приведет к тому что в окажется много дублей юзеров что приведет к мегабайтному json-у, медленной передаче по сети и тормозам как по парсингу так и по обработке.

Dr.
27.08.2018
15:15:46
ребят кто может помочь.. у меня не перерендеривается компонет, точнее мне кадется что у меня socket не отрабатывает на сервере: socket.emit('user:join', { users, }); на клиенте componentDidMount() { socket.on('user:join', this._userJoined); _userJoined = (data) => { console.log('user connect', data) socketStore.temp.users = data.users } и собственно рендер юзеров export class UsersList extends React.Component { viewchat(users) { // socketStore.temp.chat = users // socketStore.tempChatActive = true // console.log(socketStore.temp.chat) alert(users.name) } render() { var users = socketStore.temp.users return ( <div className='users'> <h3> Online Users </h3> <ul> { Object.keys(users).map((user) => { return ( <li key={user} onClick={this.viewchat.bind(this,users[user])} > {users[user].name} </li> ); }) } </ul> </div> ); } }

помогите пожалуста разобарться в чем у меня ошибка

Игорь
27.08.2018
15:15:48
написал тоже самое в вуе сообщество

мама я сейчас застрелюсь

в меня там такие помидоры и ненависть полители

один сказал что он в жизни плоские структуры не делал!

Игорь
27.08.2018
15:17:16
Я может что то не понимаю но помоему плоская структура всегда гибчи. И если нет каких то серьезных противовесов ее не использовать, то юзать однозначно надо..

Efim
27.08.2018
15:17:37
Ну это одна функция приобразования для клиента

В чем проблема

Efim
27.08.2018
15:18:16
Сократить кол-во запросов по макимуму/добавить пагинацию

Игорь
27.08.2018
15:19:09
Сократить кол-во запросов по макимуму/добавить пагинацию
а в чем проблема пагинации и плоских данных ?

Google
Игорь
27.08.2018
15:19:39
а чем гибче ? у них проще. А тебе придется повторить структуру когда что то меняешь
гибче тем что я на своей стороне связываю данные так как хочу

гибче тем что я на своей стороне связываю данные так как хочу
прямо на уровен селектора отбираю, то что мне нужно, и как оно должно выглядеть

Efim
27.08.2018
15:20:40
гибче тем что я на своей стороне связываю данные так как хочу
Ну что тебе мешает преобразовывать в то что хочешь?

На уровне редюсера отбирай

Нет смысла хранить структуры которые все время меняешь

dima
27.08.2018
15:21:08
На уровне редюсера отбирай
никогда так не делай

Efim
27.08.2018
15:21:27
Игорь
27.08.2018
15:21:33
На уровне редюсера отбирай
Может нормализуй ?

dima
27.08.2018
15:21:44
гибче тем что я на своей стороне связываю данные так как хочу
а что мешает в апи сразу положить нормальные ?

Почему?
селектор для этого

Игорь
27.08.2018
15:22:18
а что мешает в апи сразу положить нормальные ?
ну типо одни данные могут быть нужны нескольким другим данным

Игорь
27.08.2018
15:22:33
или ты хочешь получить не персистентный стейт ?

dima
27.08.2018
15:22:53
какую то дичь втираешь. Я не пойму

Efim
27.08.2018
15:22:59
селектор для этого
Селектор как раз должен постараться вернуть без преобразований) Почитайт за перфоманс

Efim
27.08.2018
15:23:38
Селектор может преобразовывать, но тогда ты обязан использовать реселект

Игорь
27.08.2018
15:23:59
какую то дичь втираешь. Я не пойму
Всмысле дичь у тебя есть 2 древовидные структуры которые зависят от некоторых данных. Если ты прокинишь данные и там и там, то данные будут разные, хотя данные одни и теже

Efim
27.08.2018
15:24:02
Ну все зависит от твоей структуры, значит не грамотная, раз на каждый чих)

Google
dima
27.08.2018
15:24:28
Ну все зависит от твоей структуры, значит не грамотная, раз на каждый чих)
а если обработать нужно ? Фильтр и тд. а если хочешь хранить плоскую структуры и собирать в массив

Efim
27.08.2018
15:25:24
Уверяю тебя можно сделать грамотную сьтруктуру с редаксом)

Игорь
27.08.2018
15:26:04
как вы ее сделаете граматной если вы иерархичные данные не выносите в простые типы ?????????

DimenSi
27.08.2018
15:27:26
бля Игорь в реакте этот тот же человек, что другом чате?

Admin
ERROR: S client not available

Efim
27.08.2018
15:27:57
вообще не понятно что ты хочешь и какая проблема
Он выше писал, что сервер отдает не плоские данные, это его проблема

dima
27.08.2018
15:28:47
Он выше писал, что сервер отдает не плоские данные, это его проблема
не вижу тут проблемы. Ему сказал сделай плоскую и храни плоскую. Он что то написал и дальше не понятно какая новая проблема

Игорь
27.08.2018
15:29:08
сорян. Мы друг друга не понимаем. Кто то со стороны подскажет
Бро я хочу понять. есть у тебя допустим книги и в них есть список авторов. Какой смысл хранить автаров в книгах когда можно сделать 2 урла для получения книг и авторов. и на уровне силектора собирать данные. хочешь с авторами, хочешь без авторов

бля Игорь в реакте этот тот же человек, что другом чате?
вот этот чел мне вообще сказал что ему нормальная форма данных на клиенте нахуй не нужна, он и без нее норм

Dr.
27.08.2018
15:31:01
может кто помочь?

ребят кто может помочь.. у меня не перерендеривается компонет, точнее мне кадется что у меня socket не отрабатывает на сервере: socket.emit('user:join', { users, }); на клиенте componentDidMount() { socket.on('user:join', this._userJoined); _userJoined = (data) => { console.log('user connect', data) socketStore.temp.users = data } и собственно рендер юзеров export class UsersList extends React.Component { viewchat(users) { // socketStore.temp.chat = users // socketStore.tempChatActive = true // console.log(socketStore.temp.chat) alert(users.name) } render() { var users = socketStore.temp.users return ( <div className='users'> <h3> Online Users </h3> <ul> { Object.keys(users).map((user) => { return ( <li key={user} onClick={this.viewchat.bind(this,users[user])} > {users[user].name} </li> ); }) } </ul> </div> ); } }

Ilya
27.08.2018
15:33:04
debugger нынче не в фаворе?

Dr.
27.08.2018
15:33:37
не помогает(

Google
DimenSi
27.08.2018
15:33:42
вот этот чел мне вообще сказал что ему нормальная форма данных на клиенте нахуй не нужна, он и без нее норм
я тоже писал, что мне без нормализации тоже норм. Ибо у меня нет связей между сущностями сильных.

Dr.
27.08.2018
15:33:54
я уперся и не могу отловить где именно ошибка происходит

DimenSi
27.08.2018
15:34:49
У меня есть история игр. У истории игр есть оружия, все приходит вместе, если все приходит вместе, зачем мне это нормализовать?

Dr.
27.08.2018
15:35:26
+

DimenSi
27.08.2018
15:36:04
[ { id, date, weapons: [ { id, name, img } ] } ]

не вижу смысла тут делать нормализацию

Ilya
27.08.2018
15:36:27
+
А там часом не Object[object] получается?

Игорь
27.08.2018
15:36:48
У меня есть история игр. У истории игр есть оружия, все приходит вместе, если все приходит вместе, зачем мне это нормализовать?
Почему не получать список оружия отдельно список игр отдельно, и на уровне селектор не подцеплять оружие для каждой игры.

DimenSi
27.08.2018
15:37:16
зачем? Если бекенд мне сразу присылает все нужные данные из базы?

DimenSi
27.08.2018
15:37:24
какой я от этого профит получу?

Dr.
27.08.2018
15:37:55
Object.entries(obj).map([key, val]
забыл уточнитьть что в целом работает.. но допустим когда другой юзер заходит тогда компопонет не перерендеривается.. ваше решение должно помочь?

Kendr
27.08.2018
15:38:07
Ебаш форс апдейт на событие "другой юзер заходит", ахуительные советы от меня

Dr.
27.08.2018
15:38:42
нет не поможет)

DimenSi
27.08.2018
15:39:36
а в чем смысл разносить так ?
ага, это получается на 20 разных книг от разных авторов будет сделано еще 20 апи запросов на каждого автора?

Ilya
27.08.2018
15:39:43
нет
А до клиента точно данные доходят?

Dr.
27.08.2018
15:39:50
да

Игорь
27.08.2018
15:39:58
а в чем смысл разносить так ?
В том что если у него оружие нужно где то ещё, он может его легко собрать, из имеющихся данных

Страница 4697 из 5115