Seguindo a linha que o eliaseas falou acredito que você pode fazer da seguinte maneira.
const [value, setValue] = React.useState('');
return (
<div>
<input
type="text"
value={value}
onChange={e => setValue(e.target.value)}
autoFocus={true}
/>
</div>
);
}
const Pai = (props) => {
const fazAlgo = () => console.log('fiz algo');
return (
<Filho />
)
}
Isso já vai funcionar pois a cada mudança do input ele vai armazenar o valor, seja vazio ou preenchido (Ex: a pessoa digitou 12554 e logo após apagou)
Mas se você precisa passar o valor para vazio ao clique do botão ai você precisa fazer algo assim.
const Filho = (props) => {
const [value, setValue] = React.useState('');
const reset = () => {
if(props.buttonResetWasClicked){
setValue('');
}
}
return (
<div>
<input
type="text"
value={value}
onChange={e => setValue(e.target.value)}
autoFocus={true}
/>
</div>
);
}
const Pai = (props) => {
const fazAlgo = () => console.log('fiz algo');
const [buttonResetWasClicked, setButtonResetWasClicked] = React.useState(false);
return (
<Filho buttonResetHasClick={buttonResetWasClicked}/>
<FilhoButton onClick={setButtonResetWasClicked(true)}/>
)
}