Formik - остановить поле от проверки, если оно не изменилось - PullRequest
0 голосов
/ 10 октября 2019

Когда Formik запускает проверку, все мои поля проверяются. Одна из моих операций действительно дорогая (поиск БД). Я бы не хотел выполнять эту проверку, если она не изменилась. Как мне этого добиться?

Я использую withFormik Компонент высшего порядка.

Один из вариантов, который я рассмотрел, - отслеживать текущее значение и последнее проверенное значение. Если отличается, то запустите проверку. Возможно, это может быть const [lastValidated, setLastValidated] = useState(); в базовом компоненте. Но я не уверен, как получить доступ к состоянию на моем базовом компоненте.

const Guest = (props) => {
  // maybe lastValidated here?
};

const formikEnhancer = withFormik({
  validate: (values, props) =>
    new Promise((resolve, reject) => {
      const errors = {};

      // Runs validation on all fields

      }
 });

export default formikEnhancer(Guest);

1 Ответ

0 голосов
/ 13 октября 2019

Вы можете рассмотреть возможность использования проверки на уровне поля в этом случае. Это может дать вам больше гибкости при проверке изменений в этом конкретном вводе, так что вы можете получить залог до запуска дорогостоящей операции.

...