Установить объект с помощью Immutability-Helper - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь обновить State с помощью Immutability-Helper и React, но у меня нет ожидаемого результата.

constructor(props) {
    super(props);

    this.state = {
        parents: {}
    };
}

handleParent = (member, data) => {
    // ex : member = 'applicant'
    // ex : data = {'gender': 'man', 'pseudo': 'Tom'}
    let newParent = update(this.state.parents, {
        [member]: { $set: [data]}
    });

    this.setState({'parents': newParent});
};

Результат:

parents {
    'applicant': {
        0 : {'gender': 'man', 'pseudo': 'Tom'}
    },
    'partner': {
        0 : {'gender': 'woman', 'pseudo': 'Julie'}
    }
}

Но я бы хотел, чтобы родители были:

parents {
    'applicant': {
        'gender': 'man',
        'pseudo': 'Tom'
    },
    'applicant': {
        'gender': 'woman',
        'pseudo': 'Julie'
    }
}

Любая помощь, пожалуйста?

Денис

1 Ответ

0 голосов
/ 21 июня 2019

Обратите внимание, что вы присвоили $set: [data], который во время выполнения оценивается как $set:[{'gender': 'woman', 'pseudo': 'Julie'}], например, что означает массив с одним значением. Просто снимите квадратные скобки и все готово:

let newParent = update(this.state.parents, {
    [member]: { $set: data }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...