King Of
Да мне для внутреннего сервиса.
Артём
styled-components всё ещё лучшее решение для работы со стилями в реакте? или что-то моднее появилось?
Danila
Danila
Кто-то из 7800 людей точно юзайл
Danila
😠
El
В Реакт компонент с Socket.IO такой код.
const socket = socketIOClient('http://localhost:8080');
useEffect(() => {
socket.on('messages', messages => {
setMessages(messages);
});
}, []);
Как избавиться от ворнинга об отсутствии socket в зависимостях useEffect() ?
Та же переменная socket используется в компоненте вне useEffect() в
const onSubmit = evt => {
evt.preventDefault();
socket.emit('new-message', { id: uuid.v4(), msg: message });
};
Danila
Артём
да это понятно, я в форме шутки. меня интересует лучшее, разумеется
Default
А то, что там tree-shakeable написано тебя не смущает?
Danila
Default
El
По идее, нет. Может быть, страницу блочит что-то ещё.
Andrey
Andrey
King Of
В общем, там(antd) есть Table.
На сайте у них приведен пример для работы с ajax. Вот тут https://ant.design/components/table/#components-table-demo-ajax
С пагинацией, фильтрами.
Но проблема в том, что в случае фильтров он делает реквесты вида http://host/?filter_name[]=filter_value
И как это переназначить - не ясно. Я уже и гитхаб их, и соответствующий тег на SO порыл, и в сорц пакета проваливался.
Бэкэнд предоставляет фильтры по запросу в виде http://host/filter_name=filter_value. То есть без квадратных скобок. Кто-то сталкивался?
Cenator 🐈
El
В экшене.
King Of
Можно, конечно, костылей нагородить, а потом проверка if !== undefined:
filter_name: filters.filter_name.toString()
King Of
Но мне кажется, что есть нормальный способ.
Дмитрий
Гайз, добрый день!
Есть вопрос по react, есть список компонентов, сгенерированный из вызова метода api, при нажатии на кнопку в одном, должен открываться другой компонент. Объясните чайнику пожалуйста, как это реализовать если у меня только есть id того компонента который нужно открыть полученный при нажатии на кнопку
Aidyno
Дмитрий
Есть главный компонент, который и содержит этот список, я понимаю что в нем нужно вызывать функцию которая будет менять состояние в другом, но как явно сказать в каком именно компоненте
Дмитрий
Дмитрий
допустим в первом boolean нажали кнопку, вызвался метод api, пришел id компонента Text у которого ключ 761, как у него поменять состояние
El
пушто сокеты нужно рулить не в компоненте, а в слое стейт менеджмента
В компоненте был импорт import socketIOClient from 'socket.io-client' для слушания сокета:
const socket = socketIOClient('http://localhost:8080').
Если по сабмиту формы для ввода нового сообщения это сообщение уходит в экшен, тот как иметь импорт socketIOClient в экшене?
Andrey
El
Andrey
и в компонентах слушать ток события
El
Там вместо event само сообщение. В остальном, пробую.
El
Дмитрий
Гайз, добрый день!
Есть вопрос по react, есть список компонентов, сгенерированный из вызова метода api, при нажатии на кнопку в одном, должен открываться другой компонент. Объясните чайнику пожалуйста, как это реализовать если у меня только есть id того компонента который нужно открыть полученный при нажатии на кнопку
Есть главный компонент, который и содержит этот список, я понимаю что в нем нужно вызывать функцию которая будет менять состояние в другом, но как явно сказать в каком именно компоненте
допустим в первом boolean нажали кнопку, вызвался метод api, пришел id компонента Text у которого ключ 761, как у него поменять состояние
Dmitriy
El
Andrey
El
Да, я action creators называю экшенами.
wolfe
Dmitry
Гайз, добрый день!
Есть вопрос по react, есть список компонентов, сгенерированный из вызова метода api, при нажатии на кнопку в одном, должен открываться другой компонент. Объясните чайнику пожалуйста, как это реализовать если у меня только есть id того компонента который нужно открыть полученный при нажатии на кнопку
Есть главный компонент, который и содержит этот список, я понимаю что в нем нужно вызывать функцию которая будет менять состояние в другом, но как явно сказать в каком именно компоненте
допустим в первом boolean нажали кнопку, вызвался метод api, пришел id компонента Text у которого ключ 761, как у него поменять состояние
Сделай стейтфул компонент где будет все обрабатываться и прокидывай в дочерник пропсами что необходимо
Дмитрий
Дмитрий
в нем обрабатываются изменения в дочерних компонентах
Dmitry
Danila
Дмитрий
Bohdan
Как мне обратится к элементам из HTMLCollection? Индексы не работают, getItem не раюотает, итераторы не работают. Но если прост овывести коллекцию в консоль то там будут элементы
Ihor
я так между прочим..
кто-нибудь пробовал строить приложение на одних хуках без редакса?
С глобальным стейтом в хуках?
Igor
Ребят, а ни кому не приходилось встраивать реакт-приложения в айфреймы? Работаю над интеграцией с одним сервисом, и столкнулся с проблемой, что роутинг работает в разы медленнее, чем если запускать приложение как обычно, из вкладки браузера - уже весь гугл облазил, информации 0, кто нибудь может подсказать, с чем это может быть связано?
Sergey
Dmitry
King Of
Это всё, конечно, великолепно.
Но каким образом объявлять фильтры и как к ним потом обращаться решают в рамках библиотеки, а не в рамках запроса. Я-то сделаю, но если существует более органичное решение, предусмотренное авторами - я бы предпочел использовать его.
Ihor
имеешь ввиду с глобальным контектом?
имею ввиду без редакса, мобх и прочего
https://www.npmjs.com/package/use-global-hook-ts
Я вот просто клевую штуку нашел, интересно опробовать
Igor
Dmitry
Надоело писать дублирующийся бойлерплейт?
Да вы лентяи!!
Ihor
или мне вот больше интересно.. кто-то пробовал как глобальный стейт использовать rxjs?
Anton
привет, подскажите пожалуйста, есть ли юз кейсы, когда в контекст закидывают не стейт, а компоненты?
типо такого:
const SomeComponent = ({text}) => <div>{text}</div>
const ThemedComponents = React.createContenxt({title: SomeComponent})
const App = () => {
return (
<ThemedComponents.Provider value={{title: SomeComponent}}>
<ThemedComponents.Consumer>
{({title}) => title({text: 'Title Text'})}
</ThemedComponents.Consumer>
</ThemedComponents.Provider>
)
}
Victor
Anton
оно самое 😄
Anton
я пытаюсь понять подводные камни такого подхода, например что там с ререндерами, дебагом и прочее
Victor
Victor
я просто не люблю рендер пропсы, как то путанно выглядят
Victor
Victor
Rauf
Всем привет подскажите пожалуйста возможно ли как нибудь не дублировать такой код
Rauf
<tr>
<th scope="row">L</th>
<td className="text-left">O</td>
<td className="text-left">A</td>
<td className="text-left">D</td>
<td className="text-left">I</td>
<td className="text-left">N</td>
<td className="text-left">G</td>
<td className="text-left">.</td>
</tr>
Rauf
буду при много благодарен
Danila
Rauf
Rauf
Danila
пжлст
Denis
Danila
Артем
Ребята,а как правильно? создать отдельный компонент для каждого из типов инпутов или же сделать 1 универсальный компонент?
Артем
Danila
Если у них достаточно различающееся поведение - сделай, почему нет.