Executando verificação de segurança...
2

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)}/>
  )
}
Carregando publicação patrocinada...