Ivan
Ivan
i
Aleksandr я передаю всего родителя, потому что, например, вот есть у меня компонент "список постов и комментов", соответссенно в нём есть компонент "пост", внутри которого компоненты "комментарий", внутри которых уже в бесконенчной иереархии тоже комментарии, и вот что бы не кидать дочерним компонентам одни и те же методы, я решил кидать имнепосрественно самого родителя и уже юзать его методы под редакосом со значениями из дочер компонента
i
ну тут нарно лучше код показать, а то со слов не оч понятно, как-нить потом залью сюда
i
про подключение тоже сделаю скрипт, чтоб показать что не работает
El
Добрый вечер.
В компоненте есть таблица, в ней над одним из столбцов инпут, по которому отправляется запрос в БД с содержимым этого инпута, nameFilter. Это параметр "имя", из БД будут возвращены все записи, содержащие "имя" в поле "имя" записи.
По вводу текста в этот инпут введённый фильтp ставится на state:
<input type='text' name='name' onChange={(evt) => setNameFilter(evt.target.value)} />
Выше в коде есть запрос в БД:
if (nameFilter) {
getRecordsForPage(1, nameFilter);
}
Такой код приводит к бесконечному перерендеру страницы. Отчего так и как сделать правильно?
Идея в собрать все фильтры (будет 3 штуки) в state компонента и затем по изменению любого из фильтров отправлять запрос в БД со значениями всех (3-х) фильтров.
Nikita
Мадияр
Всем добрый вечер. Написал код для поиска фотографий через api unsplash. Ввожу в поле поиска ключевое слово и у меня даже в консоли ничего не выводится. Что я делаю не так? подскажите плз
Мадияр
Ivan
Ivan
Вы же нигде не используете функцию с консолью, чего вы ожидали?
max
Подскажите, пожалуйста, насколько правильно использовать callback от setState в случае, если мы передаем данные из state от дочернего к родителю ?
Есть ли более удачные варианты?
пример кода: https://codesandbox.io/s/goofy-https-0ypt8
🅅aleriy
ты можешь подробно рассказать что ты в каждой строке своего кода делаешь?
для начала самому себе конечно
Ivan
max
Ivan
Это упрощенный пример. Стейт нужен.
В вашем примере стейт не нужен. Как у вас там в усложнённом примере — мы не угадаем.
Почти всегда дублировать стейт внутри и снаружи плохо.
max
Я не спршивал о необходимости стейта. Вопрос был исключительно про способ передачи данных из state дочернего элемента.
Мадияр
Мадияр
Сорри если задаю тупые вопросы, просто совсем новичок в react, пару месяцев назад только начал изучать программирование
Evgenii
а как с svg лучше всего работать? как js файл закинуть и не париться? или проходиться по.json, где будут все svg (по аналогии с валидаторами)
🅅aleriy
Volodymyr
i
@vklimv потому что если у родителя есть дочер компоненты и у них есть дочер компоненты и у них итд итп каждый раз при расширении прложения прокидывать с родителей в детей ф-ции неудобно
i
удобно когда сразу можно вызваать ф-цию
Dmitry
удалили мой актуальный комент
Мадияр
🅅aleriy
@Bessssarab надо для себя описать четко функцию компонента, что он должен делать
если это форма с кнопкой сабмит, то наверное должен быть где то тэг
<form onSubmit={submit}>
тут внутри инпуты
и кнопка сабмит
<button>Submit</button>
</form>
i
@vklimv ещё не дошёл
Мадияр
i
@vklimv спасибо, терь буду знать про чё конретно почитать
Мадияр
удалили мой актуальный комент
Я успел прочитать ваше сообщение 😅
Понимаю вам хочется самоутвердиться за чужой счет но если нечего сказать лучше промолчать, как считаете?)
Dmitry
это не самоутверждение
это проблема которая сейчас происходит
Мадияр
И в чем же она?
Andrey
Привет, ктонибудь в курсе как выглядит синтаксис подключения коменента к стору, через connect, и подключения к нескольких хокам ондовременно?
Bogdan
Andrey
connect(mstp, mdtp)compose(hoc1, hoc2(component) не работает
Bogdan
El
Наподобие с withRouter и ещё с Redux формой, например? Один HOC внутрь другого.
Andrey
import { compose } from 'redux'
Bogdan
Bogdan
https://habr.com/ru/company/raiffeisenbank/blog/354768/
Bogdan
почитай, тут довольно понятно написано
Sergey
а без хоков обойтись есть вариант?
Bogdan
хуки
Sergey
хуки
ну это я у автора вопроса как бы и спрашиваю)
Bogdan
я уже не помню, давно рекомпоз не юзал, но там вот ты в композ передаешь все хоки свои, даже жизненый цикл имитировали там, забыл что за либа
Sergey
Sergey
Bogdan
а ну значит рекомпоза и хватит, если логика которую пихаешь в рекомпоз, повторяется много где, можно вынести в усилитеь как в статье и его переюзывать и расширять дополнениями
Bogdan
мне нравился рекомпоз, когда его юзал, довольно круто выглядит
Vlad
Народ тут я решил пописать свои "любимые" тесты и вот пробдема!
Как в этом отследить изменения в пропсе?
it("add a tag", () => {
const addTag = jest.fn();
const removeTag = jest.fn();
const { queryByTestId, queryByPlaceholderText, debug } = render(
<Tags tags={["tag"]} addTag={addTag} removeTag={removeTag} />
);
const button = queryByTestId("add-button");
const input = queryByPlaceholderText("Please Enter Tag");
fireEvent.change(input, { target: { value: "new" } });
expect(input.value).toBe("new");
fireEvent.click(button);
debug();
});
С waitFor elementt не работает!
Как вообще получить доступ к props в тесте?
PS: react-testing-libraty
Буду очень благодарен, если кто, что подскажет 🤗!
Andrey
Andrey
мне нужно сделать обертку для isLoading стейта, и возвращать окно загрузки, в случае когда фетчатся данные
Andrey
как мне тут могут помоч хуки?
Andrey
хуки это хуки, хоки это хоки =)
Sergey
а ещё трудночитаемы при использовании нескольких
Sergey
Oleg
Всем привет, можете скинуть пример как на react сделать zoom картинки ? К примеру у нас есть картинка и 2 кнопки, + и - соответственно,мы можем приближаться и удаляться.
Либо почитать как можно такое сделать. Вообще конечно и колесиком мыши надо делать аналогичные действия. Нужно направление откуда двигаться
Sergey
Oleg
W
события на прокрутку колёсика мышки, потом смена высоты и ширины, компонент картинки со стейтом или параметрами ивент который меняет, всё
Oleg
Daniil
Всем привет. Есть вопрос про события. В общем моя задача - сделать модальное окно, закрываться должно кнопкой внутри модалки или если нажимать на внешнюю область(в любом месте документа).
Есть div в div'е, на внешний div повешано onClick обработчик, Когда я нажимаю на внутренний div, срабатывает onClick обработчик внешнего div. Такую проблему норм можно решить с проверкой currentTarget и target, но тогда, если вешать тот же обработчик на, допустим кнопку, в которой есть еще svg иконка, то пользователю приходится кликать именно на кнопку, минуя икноку, как это можно решить?
Anonymous
Всем привет. Есть вопрос про события. В общем моя задача - сделать модальное окно, закрываться должно кнопкой внутри модалки или если нажимать на внешнюю область(в любом месте документа).
Есть div в div'е, на внешний div повешано onClick обработчик, Когда я нажимаю на внутренний div, срабатывает onClick обработчик внешнего div. Такую проблему норм можно решить с проверкой currentTarget и target, но тогда, если вешать тот же обработчик на, допустим кнопку, в которой есть еще svg иконка, то пользователю приходится кликать именно на кнопку, минуя икноку, как это можно решить?
Propagation
Anonymous
Всем привет. Есть вопрос про события. В общем моя задача - сделать модальное окно, закрываться должно кнопкой внутри модалки или если нажимать на внешнюю область(в любом месте документа).
Есть div в div'е, на внешний div повешано onClick обработчик, Когда я нажимаю на внутренний div, срабатывает onClick обработчик внешнего div. Такую проблему норм можно решить с проверкой currentTarget и target, но тогда, если вешать тот же обработчик на, допустим кнопку, в которой есть еще svg иконка, то пользователю приходится кликать именно на кнопку, минуя икноку, как это можно решить?
Перехвати всплытие
Anonymous
Или проверкой currenttarget использую элемент && элемент