Удалить пустые элементы из моего массива и удалить выбранный элемент, когда флажок установлен в реагировать - PullRequest
0 голосов
/ 24 января 2020
const [person, setPerson] = useState(
        {
            name: "",
            age: "",
            school: "",
            address: "",
            telephone: "",

        }
    );

Я хочу убрать (телефон), когда установлен флажок, а также хочу удалить пустые значения из моего массива, и если есть пустое значение, я хочу удалить все -> (телефон: "") из своего массива.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Для удаления одного предмета из вашего личного объекта вы можете попробовать:

handleCheckboxChange (value) {
  if (value === true) {
      const {telephone, ...state} = person;
      setPerson(state);
  }
}

Для удаления пустых предметов:

handleInputChange() {
  // an array of non-empty fields
  const fields = Object.entries(person).filter([key, value] => !!value);

  // create state object from entries
  const state = Object.fromEntries(fields);

  setPerson(state);
}

НО ... С Сцепки, рекомендуется разбить состояние на несколько частей, например:

const [personName, setPersonName] = useState('');
const [personAge, setPersonAge] = useState('');
...

Преимущества:

  1. Вы можете изменять их независимо.
  2. Вам не нужно объединять объект каждый раз, когда вы хотите установить состояние.

Проверить эту реакцию, выполните c: https://reactjs.org/docs/hooks-state.html#tip -using-множественные-переменные-состояния-переменных

0 голосов
/ 24 января 2020

используйте delete для удаления переменной из объекта

const newPerson=person;

if(newPerson.telephone===''){
 delete newPerson.telephone;
}

...otherchecks

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