В моем приложении React + Redux + Redux-Form мне нужно включить / отключить кнопку «Далее» в зависимости от состояния действительности формы. Эта кнопка управляется родительским компонентом, поэтому я не могу просто иметь <Button disabled={!props.valid}/>
. В идеале приставка-форма выдала бы мне событие типа onValidityChanged
, которое я мог бы прослушать, и вызывало бы функцию setCompleted()
, передаваемую родительским компонентом всякий раз, когда это происходит. Однако такого события, похоже, не существует. Я также не могу использовать хук onChange
, потому что в этот момент у него не будет доступа к реквизиту, переданному родителем.
например.
function Parent(props){
const [completed, setCompleted] = React.useState(false);
return (
<div>
<Child setCompleted=setCompleted/>
<button disabled={!completed}>Next</button>
</div>
);
}
const Child = reduxForm({form: 'form'})(props => {
const {setCompleted} = props;
// Call setCompleted once this form becomes valid
});
Как я могу запустить событие всякий раз, когда валидность формы изменяется, но все еще иметь доступ к реквизиту?