Динамическое поле формы с использованием реагирующих хуков - PullRequest
1 голос
/ 10 июня 2019

Я пытаюсь собирать входные данные из формы динамически, а не вводить каждое отдельное имя поля ввода. Это было довольно легко, используя стандартный React, но я переключаюсь на React Hooks, и теперь я немного запутался в том, как достичь той же цели.

const gatherFormData = e => {
  if (e.target.value !== null) {
    _.assign(
      formData.payload,
      { [e.target.name]: e.target.value, action },
      { groupNumber },
    );
    setState({ 
      [e.target.name]: (e.target.value),
      formData
    });
  }
};

Я пытался использовать шаблонный синтаксис, но это не сработало.

set`${e.target.name}`(e.target.value);

1 Ответ

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

Вы можете использовать useState с объектом, что позволяет вам динамически добавлять вещи.Пример:

const [targets, setTargets] = useState({});
// Set values like this
setTargets({...targets, [`${e.target.name}`]: e.target.value});

// Then get values:
const theValue = targets.yourTargetNameHere

При установке значения необходимо использовать расширенный синтаксис ({...targets), чтобы сохранить другие значения, введенные в объект.

...