@Nivaech

Как добавить параметр в объект?

Есть объект с данными о предмете.
const { title, description, price, category, sizes, color, id } = singleItem;

Перед покупкой предмета пользователь должен выбрать размер и цвет. При клике на размере и цвете они заносятся в state.
const [chosenParameters, setParameters] = useState({ size: '', color: ''});

    const pickSize = (size) => {
        setParameters(
            { ...chosenParameters, size: size }
        );
    };
        
    const pickColor = (color) => {
        setParameters(
            { ...chosenParameters, color: color }
        );
    }

Как модифицировать функцию так, чтобы в объект singleItem добавился новый параметр-объект pickedProps, со значениями size и color? Или вместо одного объекта - два дополнительных одноименных параметра.

Мое решение выглядит вот так, но оно не рабочее.
const pickSize = (size) => {
        setParameters(
            { ...chosenParameters, size: size }
        );
        return {
            ...singleItem, pickedSize: size
        }
    };
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
Devilz_1
@Devilz_1
Frontend-Developer
например так:

const { title, description, price, category, sizes, color, id } = singleItem;

    const [chosenParameters, setParameters] = useState({ ...singleItem, size: '', color: ''});

    const pickSize = (size) => {
        setParameters({...chosenParameters, size: size});
    };

    const pickColor = (color) => {
        setParameters({...chosenParameters, color: color});
    };


Получается делаем из параметра chosenParameters - копию объекта singleItem с дополнительными параметрами size и color. Функция pickSize вернёт эту копию с установленным параметром size, а функция pickColor, соответственно color.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы