Vale olhar o caminho que o projeto fez até aqui, porque ele explica o aoSubmeter melhor do que qualquer definição.
Desde que a gente parou de escrever HTML solto e começou a quebrar a tela em componentes, todo componente novo veio recebendo props. E os valores foram ficando mais complexos, um degrau por vez.
Começou com texto entre as tags: Botao e TituloFormulario recebendo children. Depois string em atributo: Label com htmlFor. Depois objeto: Tema recebendo tema e lendo o .nome dele. Depois array: ListaSuspensa recebendo itens pra montar as option. Depois objeto mais complexo: CardEvento recebendo evento inteiro e usando capa, data, título e tema.
Quando o board precisou ganhar vida, veio o último degrau: uma prop carregando uma função.
É o mesmo mecanismo
<FormularioDeEvento
temas={temas}
aoSubmeter={adicionarEvento}
/>
Duas props, mesma sintaxe, mesma direção. Uma leva um array, a outra leva uma função. O temas você já tinha visto meia dúzia de vezes antes — e o aoSubmeter está do lado dele, na mesma chamada.
Repara que adicionarEvento está sem parênteses. Não estamos executando ela ali. Estamos passando ela, do mesmo jeito que fizemos com o array logo acima.
Isso é JavaScript: função é valor. Guarda em variável, passa como argumento, devolve de outra função. Sem isso, aoSubmeter={adicionarEvento} parece mágica — e não é.
Então ele não surge do nada, e não viaja pra lugar nenhum. É a mesma função vista de dois pontos. No App ela se chama adicionarEvento. Dentro do formulário, atende por aoSubmeter.
A regra continua valendo
Dado desce, de pai pra filho, via props. Não tem exceção aqui.
O que acontece quando o filho precisa avisar o pai de alguma coisa? O pai manda uma função pra baixo, e o filho chama quando precisa falar.
// dentro do aoFormSubmetido
aoSubmeter(evento)
O formulário diz "montei um evento, toma". Só isso. Ele não sabe que existe useState do outro lado, não sabe que existe lista, não sabe o que vem depois.
E é bom que não saiba. É isso que permite plugar esse mesmo formulário em outra tela amanhã.
ao é convenção de nome: aoSubmeter, aoClicar, aoMudar. Versão em português do onSubmit, onClick, onChange que você já viu no HTML. Bateu o olho num ao ou num on numa prop, tem função ali dentro.
O que eu vejo se olho os seus posts em sequência
map, find, ...rest, evento versus eventos, e agora função passada como argumento
Nenhuma vez um conceito de React.
No post anterior eu deixei duas indicações, amarradas exatamente nesses pontos — escopo, métodos de array, função como valor, FormData, eventos, formulários. Não sei se você chegou a olhar.
E o projeto não para de subir a escada. O próximo trecho já usa filter e some pra decidir quais temas aparecem na tela e quais somem. Mais método de array, mais função sendo passada como argumento.
Sempre que precisar, posta aqui no fórum - eu sempre procuro estar atendo e ajudar!
Bons estudos!