Size: a a a

JavaScript.Ninja

2021 June 15

KR

Kirill Romanov in JavaScript.Ninja
согласен, идея сомнительная
источник

A

Ayrat in JavaScript.Ninja
это пока, чтобы не обосраться с массивом
источник

A

Ayrat in JavaScript.Ninja
кто-нибудь делал такую штуку: есть массив и мы берём из него элементы, проверяем циклом на условие, если элемент удовлетворяет условию - мы из исходного массива его удаляем?
я на Java пробовал, там нельзя "на ходу" переобувать массив((
а здесь я думаю тоже, но не хотелось бы писать функцию, проверяющую наличие дубликатов в массиве-адресате при его заполнении
источник

KR

Kirill Romanov in JavaScript.Ninja
в Java для этого есть Collection.removeIf
источник

A

Ayrat in JavaScript.Ninja
а тута?
источник

KR

Kirill Romanov in JavaScript.Ninja
из коробки нет
источник

KR

Kirill Romanov in JavaScript.Ninja
но написать не сложно, нужно просто идти по массиву с конца, чтоб не было проблем
источник

A

Ayrat in JavaScript.Ninja
я так понимаю, аррей.реверс тоже сожрёт ресурса?
источник

A

Ayrat in JavaScript.Ninja
который мы хотели сохранить, идя с конца
источник

KR

Kirill Romanov in JavaScript.Ninja
во-первых, Array.reverse мутирует массив
источник

NS

Nick Shkit in JavaScript.Ninja
Привет. Кто может подсказать как к объекту сделать кастомное проперти. Вот пример что нужно https://codepen.io/mykola-shkit/pen/VwpqGPy
источник

PD

Petya Danchuk in JavaScript.Ninja
никак не пойму как из этого мне сделать отдельный кастомный хук, чтобы вынести его в отдельный файл
useEffect(() => {
   if (fetchError === "CSRF_ERROR") {
     document.location.reload();
   }
 }, [fetchError]);
источник

DZ

D Z in JavaScript.Ninja
Обернуть в функцию, что принимает fetchError
источник

DZ

D Z in JavaScript.Ninja
Но я бы не тянул эту логику во вью слой
источник

PD

Petya Danchuk in JavaScript.Ninja
вот так да?
const useReloadCsrfToken = (error, reload) => {
 useEffect(() => {
   if (error === "CSRF_ERROR") {
     reload();
   }
 }, [error, reload]);
};

export default useReloadCsrfToken;
источник

DZ

D Z in JavaScript.Ninja
Да
источник

PD

Petya Danchuk in JavaScript.Ninja
а потом прям так в теле компонента и записать?
useReloadCsrfToken(fetchError);
источник

M

Michael in JavaScript.Ninja
Да
источник

DZ

D Z in JavaScript.Ninja
Только reload можно сразу в useEffect оставить. Ну или если вам действительно это важно, то он должен быть объявлен с помощью useCallback, или более простой вариант - убрать reload из зависимостей useEffect
источник

PD

Petya Danchuk in JavaScript.Ninja
ммм. а так не пойдет?
const useReloadCsrfToken = (error, reload) => {
 const _reload = useCallback(reload, [reload]);
 useEffect(() => {
   if (error === ErrorStatus.CSRF_ERROR) {
     _reload();
   }
 }, [error, _reload]);
};
источник