Скопировать объект состояния без полей - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно передать состояние компонента его родительскому компоненту, но мне не нужно передавать все поля.

Что я сейчас делаю:

submitHandler = (e) => {
    e.preventDefault();
    const newState = Object.keys(this.state).map(item => {
        if(item !== 'errors')
        {
            return { item: this.state[item] }
        }
    });

    console.log(newState);
    this.props.onChange(newState);
}

Очевидно, это не то, что мне нужно.

state = {
    errors: {
        fio: '',
        email: '',
        phone: ''
    },
    owner: owner.Company,
    fio: null,
    company: null,
    phone: null,
    fax: null,
    email: null,
    adress: null
}

Мне нужно перенести все поля, кроме errors. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Деструктуризация объекта с помощью оператора rest обеспечивает удобный способ копирования объектов, при этом пропуская определенные поля. В приведенном ниже примере newState будет копией this.state, минус свойство errors:

submitHandler = e => {
  e.preventDefault();
  const { errors, ...newState } = this.state;
  this.props.onChange(newState);
};
0 голосов
/ 05 ноября 2018

Вы можете использовать оператор rest для его работы:)

const { errors, ...newState } = this.state;

this.props.onChange(newState);

Я привожу пример здесь :) https://repl.it/@EQuimper/PleasantTrimDeclarations

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...