🦜
Sergey
Китикет
Не успел)
🦜
ky за фетч будет
Китикет
А как же $.ajax
Dmitriy
А как же $.ajax
Это другое)
Vadim
Это другое)
как другое
🦜
А как же $.ajax
📞👉👮‍♀️
Китикет
Я считаю это надо включить в основные варианты)))
Китикет
xD
Dmitry
Как автоматизировать версионность?
Sm•ok
Где том звонит по телефону
Sergey
Как автоматизировать версионность?
Только это так себе затея
Dmitry
react-hooks-testing-library кто то юзал либу ?
Александр 🦄
Только это так себе затея
Мало пользы/толку?
Sergey
Мало пользы/толку?
Слишком много бесполезных версий. Их нужно качественно руками поддерживать
Александр 🦄
Слишком много бесполезных версий. Их нужно качественно руками поддерживать
Одно время было желание автоверсионность замутить, но чет не проникся
Sm•ok
Всем привет. Хочу узнать, какая доля чата юзает fetch, а какая Axios ?
Я почему спросил. Хочу написать норм обертку над каким то http клиентом. К примеру axios. Обертка в виде класса singleton и в котором все методы, возвращающие промисс + сохраняющие cancel token (если передали в параметрах отмену запроса при повторении) и при повторном обращении отменять старый запросик
Sm•ok
А то в axios так ужасно сделана отмена запроса
Oleg
Ребят, подскажите. Как в useEffect сделать такое: 1) при загрузке компонента единоразово выполнить феч запрос (логично, что useEffect(() => { ... }, []) отработает единоразово и можно так). 2) при обновлении пропсов компонента - феч уже не выполнять, а отрабатывать другой сценарий. Можно ли юзать два useEffect с разными функциями в рамках одного компонента? Или сделать стейт, который ставить в true после выполнения фетча первый раз, и потом повторно его не вызывать?
Dmitry
как протестить эффект ? Как дернуть инмаунт ?
Sm•ok
Ужасно же ?
Sm•ok
и плюс как мне отменить запросы при unmount
🦜
abortController посмотри
Sm•ok
Вызвать функцию
Я смотрел примеры и везде было if (typeof this._source != typeof undefined) { this._source.cancel('Operation canceled due to new request.') }
Sm•ok
Это шо в каждом методе надо писать ?
🦜
Я смотрел примеры и везде было if (typeof this._source != typeof undefined) { this._source.cancel('Operation canceled due to new request.') }
// cancelToken and source declaration const CancelToken = axios.CancelToken; let source = CancelToken.source(); source && source.cancel('Operation canceled due to new request.'); // save the new request for cancellation source = axios.CancelToken.source(); axios.post(url, postData, { cancelToken: source.token }) .then((response)=>{ return response && response.data.payload); }) .catch((error)=>{ return error; });
Ivan
Что за бот?
Ivan
Что за бот?
@vote не так выглядит
🦜
стремно же
открой abortController
Sm•ok
Я нашел ток это
🦜
Я нашел ток это
https://developer.mozilla.org/ru/docs/Web/API/AbortController
🦜
стремно же выглядит
Sm•ok
стремно же выглядит
Я крч думал где-то хранить в 1 месте все эти cancel token (класс обертка над axios) и там все это дело разруливать
🦜
зачем тебе хранить в каком-то классе их?
🦜
ты можешь в самом компонент создать, откуда вызываешь функцию
Sm•ok
ты можешь в самом компонент создать, откуда вызываешь функцию
Было бы просто. someAxiosWrap.get('url', params) при надобности передавать туда, что старый запрос должен быть отменен
Sm•ok
Если вызовется еще один до завершения прошлого
🦜
🦜
передавай
Sm•ok
в методах проверять мол if(someCondition) { this.cancelTokens = { ...this.cancelTokens, url: newCancelToken } }
Sm•ok
записываем cancelToken старого таким образом
V◌┗⢎ℍıK
Обязан ли компонент рендерить свои children как есть или не считается плохим тоном производить над этим массивоподобным объектом какие-то операции вроде того, чтобы например сначала обернуть каждый элемент во враппер?
Sm•ok
В state хранить JSX ?
V◌┗⢎ℍıK
не понял
Взять каждого ребенка и завернуть в див например
Eugene
норм же
Eugene
<div>{children}</div>
Eugene
чот не понятно, что имеется ввиду лол
Igor
React.Children
V◌┗⢎ℍıK
React.Children.map(children, child => <div className="wrapper">{child}</div>)
Eugene
жесть 🤔
Cenator 🐈
React.Children.map(children, child => <div className="wrapper">{child}</div>)
<Example renderChild={child => <Wrapper>{child}</Wrapper>} > <Child /> <Child /> </Example>
Vadim
Как избежать ререндера инпутов, если onInputChange создается заново из-за нового state?
Cenator 🐈
Ну мне вряд ли так надо
Ну то что ты предложил довольно неочевидно выглядит, я бы не делал так
artalar
Как избежать ререндера инпутов, если onInputChange создается заново из-за нового state?
Во-первых у каждого инпута должен быть свой стейт, хватит уже мержить объекты. Во-вторых используйте нативные формы, зачем вам стейтфул?
artalar
И? Я это видел
artalar
какие нативные формы?
https://github.com/artalar/react-faster-form-example/blob/master/src/FormSimple.js
artalar
Вместо this.values можно использовать useRef
Vadim
Вместо this.values можно использовать useRef
первый раз вижу такой подход если честно)
Vladimir
Вместо this.values можно использовать useRef
как очистить форму после handleSubmit?