Size: a a a

JavaScript.Ninja

2021 March 13

RM

Roman Mironov in JavaScript.Ninja
Andrey Dmitriyev
Привет, ребят.

ПОдскажите пожалуйста - если я axios-ом делаю запрос на html - ную страничку и получаю русские буквы в виде:
<p><b>����������</b></p>
Как можно этого избежать?
первое, что пришло в голову - responseType: 'arraybuffer', responseEncoding: 'binary'
источник

RM

Roman Mironov in JavaScript.Ninja
и ответ декодить
источник

AD

Andrey Dmitriyev in JavaScript.Ninja
Спасибо, попробую
источник

RM

Roman Mironov in JavaScript.Ninja
Andrey Dmitriyev
Спасибо, попробую
источник
2021 March 14

VC

Valera CSS_Junior in JavaScript.Ninja
как бы вы это написали? где-то читал  что двойных исключений желательно избегать, типо запутывает читающего код.
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Valera CSS_Junior
как бы вы это написали? где-то читал  что двойных исключений желательно избегать, типо запутывает читающего код.
а где тут двойное исключение? И что это значит? В моём понимании двойное исключение выглядит так !!variable, а точнее двойное отрицание.
я бы написал reminders && reminders.map(), даже если там будет пустой массив, ничего страшного не произойдёт
источник

VC

Valera CSS_Junior in JavaScript.Ninja
"а где тут двойное исключение?" нет нет напоминаний это же двойное исключение
источник

VC

Valera CSS_Junior in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
а где тут двойное исключение? И что это значит? В моём понимании двойное исключение выглядит так !!variable, а точнее двойное отрицание.
я бы написал reminders && reminders.map(), даже если там будет пустой массив, ничего страшного не произойдёт
reminders && reminders.map() - попробую но в реакте так не пишут почему-то
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Valera CSS_Junior
reminders && reminders.map() - попробую но в реакте так не пишут почему-то
почему вы так решили? Пишут еще как. В чем вы видите проблему такой записи?
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
для массивов обычно пишут
reminders && reminders.length > 0 && reminders.map
но я не вижу необходимости проверять длину. Если массив будет пустым, map сработает и вернет пустой массив, который в свою очередь не отрендерится.
Проверять длину нужно если вы хотите вывести сообщение вроде no reminders found
источник

VC

Valera CSS_Junior in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
для массивов обычно пишут
reminders && reminders.length > 0 && reminders.map
но я не вижу необходимости проверять длину. Если массив будет пустым, map сработает и вернет пустой массив, который в свою очередь не отрендерится.
Проверять длину нужно если вы хотите вывести сообщение вроде no reminders found
я не сразу увидел. теперь вспомнил почему так сделал
источник

RM

Roman Mironov in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
для массивов обычно пишут
reminders && reminders.length > 0 && reminders.map
но я не вижу необходимости проверять длину. Если массив будет пустым, map сработает и вернет пустой массив, который в свою очередь не отрендерится.
Проверять длину нужно если вы хотите вывести сообщение вроде no reminders found
(reminders || []).length лаконичнее мб будет
источник

M

Misha in JavaScript.Ninja
Roman Mironov
(reminders || []).length лаконичнее мб будет
Ну вы и наркоманы, у нас есть ?.
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Roman Mironov
(reminders || []).length лаконичнее мб будет
тогда 0 будет рендерится, нужна проверка на >0
источник

RM

Roman Mironov in JavaScript.Ninja
Misha
Ну вы и наркоманы, у нас есть ?.
Мы постепенно он старого к новому идем)
источник

RM

Roman Mironov in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
тогда 0 будет рендерится, нужна проверка на >0
Не, дальше идет map. Я просто первые две проверки типа “одной» заменил
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Valera CSS_Junior
я не сразу увидел. теперь вспомнил почему так сделал
гулять так гулять, я бы тогда написал так
const remindersMarkup = useMemo(() => {
 if (!reminders || !reminders.length) { // можно улучшить условие с optional chaining если поддерживается в проекте
   return <h2>No Reminders found!</h2>
 }
 return reminders.map((reminder, idx) => <Reminder key={idx} {...reminder}) /> // плохая затея в ключ записывать индекс элемента в массиве
}, [reminders])

return (
 <div>
   <h3>Reminders</h3>
   {remindersMarkup}
 </div>
)
источник

VC

Valera CSS_Junior in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
гулять так гулять, я бы тогда написал так
const remindersMarkup = useMemo(() => {
 if (!reminders || !reminders.length) { // можно улучшить условие с optional chaining если поддерживается в проекте
   return <h2>No Reminders found!</h2>
 }
 return reminders.map((reminder, idx) => <Reminder key={idx} {...reminder}) /> // плохая затея в ключ записывать индекс элемента в массиве
}, [reminders])

return (
 <div>
   <h3>Reminders</h3>
   {remindersMarkup}
 </div>
)
выглядит неплохо. советуют правда лишний раз useMemo не юзать. типо влияет на перформанс. не знаю насколько правда
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Roman Mironov
Не, дальше идет map. Я просто первые две проверки типа “одной» заменил
не совсем понял, если вы запишите
(reminders || []).length && reminders.map()

то в случае falsy значения reminders у вас на странице отрендерится 0
источник

RM

Roman Mironov in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
не совсем понял, если вы запишите
(reminders || []).length && reminders.map()

то в случае falsy значения reminders у вас на странице отрендерится 0
Вы, видимо, правы, я не так код читал) В реакте давненько не рылся
источник