Использование setFieldValue для одного поля на основе другого значения поля - PullRequest
2 голосов
/ 24 сентября 2019

Я использую библиотеку Formik реагировать и пытаюсь обновить 2 поля, основываясь на событии onChange другого.Например,

price = quantity * totalPrice

price :
onChange={() => {setFieldValue('quantity',values.quantity? values.price / values.totalPrice:values.quantity, );
setFieldValue('totalPrice',values.totalPrice? values.price * values.quantity: values.totalPrice,);}}

quantity :
onChange={(value, e) => { this.disableFiled(value, e); setFieldValue('totalPrice',values.price ? values.price * values.totalPrice : ' ',);}}

totalPrice:
onChange={(value, e) => { this.disableFiled(value, e);setFieldValue('quantity',values.price ? values.totalPrice / price : ' ', ); }}

, когда количество имеет значение, итоговая цена будет отключена, и наоборот. Но она не будет правильно вычислять другие поля

...