Я новичок в реагировании и экспериментирую с реагированием-dnd, чтобы перетаскивать фрагменты в контейнер. В моей функции для обработки частей, которые были отброшены при установке состояния моего массива отброшенных частей, использование оператора распространения само по себе не работает и обновляет перетаскиваемые части только так, чтобы они были перетаскиваемыми последними. Однако он работает правильно при использовании функции обновления. Кто-нибудь знает, почему это так? При использовании оператора распространения создается впечатление, что после повторной отрисовки массив PlacedPieces всегда пуст.
import { useState } from 'react';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import Piece from './Piece';
import Space from './Space';
function Board2 () {
const [placedPieces, setPlacedPieces] = useState(Array(0))
function handlePieces(piece) {
setPlacedPieces([...placedPieces, piece])
}
console.log(placedPieces)
return(
{placedPieces.map((piece, pieceIDX)=> (
{piece.name}
))}
);
}
export default Board2;
Подробнее здесь: https://stackoverflow.com/questions/798 ... e-but-does
React useState не работает с оператором распространения при установке нового состояния, но работает с функцией обновлени ⇐ Javascript
Форум по Javascript
1766294065
Anonymous
Я новичок в реагировании и экспериментирую с реагированием-dnd, чтобы перетаскивать фрагменты в контейнер. В моей функции для обработки частей, которые были отброшены при установке состояния моего массива отброшенных частей, использование оператора распространения само по себе не работает и обновляет перетаскиваемые части только так, чтобы они были перетаскиваемыми последними. Однако он работает правильно при использовании функции обновления. Кто-нибудь знает, почему это так? При использовании оператора распространения создается впечатление, что после повторной отрисовки массив PlacedPieces всегда пуст.
import { useState } from 'react';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import Piece from './Piece';
import Space from './Space';
function Board2 () {
const [placedPieces, setPlacedPieces] = useState(Array(0))
function handlePieces(piece) {
setPlacedPieces([...placedPieces, piece])
}
console.log(placedPieces)
return(
{placedPieces.map((piece, pieceIDX)=> (
{piece.name}
))}
);
}
export default Board2;
Подробнее здесь: [url]https://stackoverflow.com/questions/79852114/react-usestate-not-working-with-spread-operator-when-setting-new-state-but-does[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия