#reactjs
Вопрос:
Я писал простой код в react и пытался сгладить массив, но когда я это делаю, он предупреждает меня 2 раза, хотя я использовал Blocks.flat() только один раз. Любая помощь будет оценена по достоинству!
const [Blocks, setBlocks] = React.useState(blocks);
alert(Blocks.flat());
Обратите внимание, что когда вы выполняете console.log, этого не происходит, он регистрирует это только один раз.
Комментарии:
1. IIRC, это происходит в dev, потому что React дважды отобразит ваш компонент, чтобы убедиться, что он каждый раз отображается одинаково. Либо это, либо у вас есть что-то еще, вызывающее повторную визуализацию. В любом случае, это не ошибка, вы просто не должны предупреждать внутри своего компонента. Или, если вы действительно хотите, поместите это в a
useCallback
и добавьте в событие onClick илиuseEffect