Fiz o curso seguindo o código mostrado nos vídeos e após a última aula, mesmo o sistema funcionando, verifiquei que havia uma mensagem de erro no console que ainda persistia. Ao iniciar o sistema e usar apenas um dos cadastros, o problema não ocorre, mas se você cadastrar um livro e em seguida clicar no cadastro de autor e fizer um cadastro, o erro aparecerá:
"setstate can only update a mounted or mounting component".
Busquei o código mais recente do projeto no Github e vi que o erro também acontecia. Pesquisando um pouco, identifiquei que o erro refere-se ao fato de que, ao trocar de tela, o "inputcustomizado" continua inscrito para receber as mensagens do tópico "limpa-erros". Mas, como o componente não existe mais, a tentativa de executar o setstate causa o erro.
Na documentação do React (https://facebook.github.io/react/blog/2015/12/16/ismounted-antipattern.html) encontrei uma dica orientando a sempre que você se "inscrever" para receber uma mensagem após montar um componente, certifique-se de cancelar a inscrição quando ele for desmontado. No caso do React, isso pode ser feito com o método "componentWillUnmount".
Exemplo:
componentDidMount() {
PubSub.subscribe("erro-validacao",function(topico,erro){
if(erro.field === this.props.name){
this.setState({msgErro:erro.defaultMessage});
}
}.bind(this));
PubSub.subscribe("limpa-erros",function(topico){
this.setState({msgErro:''});
}.bind(this));
}
componentWillUnmount() {
PubSub.unsubscribe("erro-validacao");
PubSub.unsubscribe("limpa-erros");
}
A propósito, fiz um pull request com essas sugestões no repositório do GitHub citado durante o curso.
Espero que seja útil.