Что означает запись, которая напоминает массив, но используется на месте имени константы

166
07 ноября 2021, 04:10

Доброе утро. Надо срочно разобраться в коде, а JavaScript только начинаю изучать.

Подскажите пожалуйста, в следующем коде что такое [value1, setValue1]?

Напоминает массив, но используется на месте имени константы.

const [value1, setValue1] = useState([
  { id: 1, text: "1" },
  { id: 2, text: "2" }
]);
const [value2, setValue2] = useState("");

Также, насколько я понимаю, useState - это функция, которая принимает массив из двух объектов, каждый из которых состоит из id и text (в первом выражении), правильно?

Подскажите пожалуйста по каким ключевым словам я смогу найти информацию, чтобы в этом разобраться, либо дайте ссылку.

Answer 1

Сам массив в const это деструктурирующее присваивание

const [value1, setValue1] = useState([
    { id: 1, text: "1" },
    { id: 2, text: "2" }
]);

Я почему-то уверен что это React.js Уж очень это похоже на типовой пример хука useState. Собственно если я прав, то происходит следующее. Ссылочка на документацию

useState помогает определить начальную переменную для состояния. В вашем примере в value1 запишется МАССИВ полностью и далее создастся функция обновления данной переменной. То есть setValue1([...]) эквивалентен setState({value1 : [...]}). Единственный аргумент который передаётся в useState() это начальное состояние для первой переменной указанной в const.

READ ALSO
динамическое обновление страницы AJAX, JQuery

динамическое обновление страницы AJAX, JQuery

Есть два AJAX скрипта, один добавляет в БД, другой выводит из БД, они оба работают

169
Считать qr code из браузера телефона

Считать qr code из браузера телефона

Мне необходимо считать qr code c web страницы с телефона на Android, для этого решил написать страницу используя ReactJS, нашел библиотеку react-qr-reader, взял...

173
Показать блок один раз по скрипту

Показать блок один раз по скрипту

Как показать блок только один раз, руководствуясь скриптом ниже? Обе кнопки призваны показать класс, в случае щелчка по ним, но нужно, чтобы...

95
Как добавить display: none; в разметке html по клику?

Как добавить display: none; в разметке html по клику?

Как добавить style="display: none;" для test-class1 в разметке html по клику на кнопку без присвоения css-класса с display: none;?

115