Bom dia pessoal,
estou com o mesmo problema relatado pelo Cristiano em https://cursos.alura.com.br/forum/topico-typeerror-this-validacoes-map-is-not-a-function-111680.
Apesar dele ter solucionado o problema comentando apenas as chamadas do componente PopUp presentes no Formulario.js eu continuo com o problema mesmo não usando este componente. Verifiquei o meu código com o apresentado nas aulas até aqui e não consegui compreender o que está acontecendo.
Segue abaixo o meu FormValidator.js ...
import validador from 'validator';
class FormValidator {
    constructor(validacoes) {
        this.validacoes = validacoes;
    }
    valido() {
        const validacao = { };
        // populando o objeto de acordo com a quantidade de campos
        // criando a chave isInvalid e atribuindo false para cada
        // **TODOS OS CAMPOS COMEÇAM VÁLIDOS!**
        this.validacoes.map(regra => (
            validacao[regra.campo] = { isInvalid: false, message: '' }
        ));
        //retorna um grande objeto com uma chave externa isValid 
        //junto com todos os outros campos.
        return { isValid: true, ...validacao };
    }
    valida(state) {
        let validacao = this.valido();
        this.validacoes.forEach(regra => {
            const campoValor = state[regra.campo.toString()];
            const args = regra.args || [];
            const metodoValidacao = typeof regra.metodo === 'string' ?
            validador[regra.metodoValidacao] : regra.metodo; 
            /* Segundo parâmetro é uma lista opcional de argumentos possíveis de 
               configuração dos métodos de validação  */
            if (metodoValidacao(campoValor, ...args, state) !== regra.validoQuando) {
                validacao[regra.campo] = {
                    isInvalid: true,
                    message: regra.message
                }
                validacao.isValid = false;
            } 
        });        
        return validacao;
    }
}
export default FormValidator;
 
            