const [selected, setSelected] = useState([]);
const toggleSelected = (option, checked) => {
if (multiSelection) {
setSelected(selected => checked
? [...selected, option.key]
: selected.filter(entry => entry !== option.key)
);
} else {
setSelected(checked
? [option.key]
: []
);
}
};
toggleSelected
не имело логики переключения, хотя по наименованию - должна была бы. То же самое было с setSelected
. Демка.const rows = 6;
const columns = 10;
let result = '';
for (let row = 0; row < rows; row++) {
for (let column = 0; column < columns; column++) {
const index = row * columns + column + 1;
result += index.toString().padStart(2, '0');
if (column < columns - 1) {
result += ' ';
}
}
if (row < rows - 1) {
result += '\n';
}
}
console.log(result);
const a = parseInt(prompt('Введите число A:'), 10);
const b = parseInt(prompt('Введите число B:'), 10);
if (a === b) {
alert('try числа равны');
} else if (a > b) {
alert('а больше б');
} else if (a < b) {
alert('б больше а');
}
mailto:
).ul
).h2
, h3
).button
.label
где попало.const download = (name, blob) => {
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.setAttribute('href', url);
link.setAttribute('download', name);
link.addEventListener('click', () => {
setTimeout(() => {
URL.revokeObjectURL(url);
});
});
link.click();
};
fetch
?const request = (resource, init = {}) => fetch(resource, init)
.then(response => {
if (response.status === 401) {
// redirect
return Promise.reject(/* cause */);
}
return response;
});