AnswerBun.com

Yup mixed não funciona notRequired ou nullable

Stack Overflow em Português Asked by Braga Us on January 2, 2022

Boa tarde, estou validando os dados de um formulário com Yup e preciso que apenas imagens possam ser carregadas, então usei o seguinte código:

// formato que pode ser upado no input de email
const formatosSuportados = [
    "image/jpg",
    "image/jpeg",
    "image/gif",
    "image/png"
];    

// Validação das entradas
const EsquemaDeValidacao = Yup.object().shape({
    email: Yup.string().email().required('enter email'),
    corpo: Yup.string().max(500, "Too Long!").required('enter any message'),
    arquivo: Yup.mixed().nullable().test('fileFormat', 'Unsupported Format', arquivo => 
        arquivo && formatosSuportados.includes(arquivo.type)
    )
})  

O problema é que o arquivo está sendo obrigatório para eu conseguir enviar o email. Não dispara erro algum, apenas não envia se não tem nenhum arquivo upado.

Eu já tentei com nullable e notRequired, existe alguma outra forma de fazer isso?

One Answer

Essa expressão sempre vai dar falso se não contiver nenhum arquivo selecionado, então, acredito uma lógica bem básica seria testar se o arquivo não existe, retorna true, se ele existir retornar o outro teste, exemplo:

arquivo => { 
    if (!arquivo) { 
        return true;
    }
    return formatosSuportados.includes(arquivo.type) 
} 

isso vai solucionar o seu problema.

Answered by novic on January 2, 2022

Add your own answers!

Related Questions

The operator + is undefined for the argument type(s) CharSequence, int

1  Asked on January 2, 2022 by marcos-paulo-s-rezende

       

Entidades classes

1  Asked on January 2, 2022

     

Relacionamento entre tabelas com Sequelize

1  Asked on January 2, 2022 by vitor-cordeiro

     

EOFError: EOF when reading a line

2  Asked on January 2, 2022 by bilbo

       

Yup mixed não funciona notRequired ou nullable

1  Asked on January 2, 2022 by braga-us

     

TypeOrm consulta com Inner Join está vindo vazia

1  Asked on January 2, 2022 by gustavo-benevenuto

         

Como centralizar um menu (div) fixo?

1  Asked on January 2, 2022 by the-witcher0

   

Axios: params em GET não funciona – React Native

1  Asked on January 2, 2022 by joseph-isaac

       

Problemas ao alinhar div no lado direito

1  Asked on January 2, 2022 by imm-telecom

   

wp_pagenavi não funciona em category.php

2  Asked on December 30, 2021 by juliano-arajo

   

Problema com o Split() no Mono

1  Asked on December 30, 2021 by ygor-kayan

     

Crio uma tabela ou várias no SQL Server?

1  Asked on December 30, 2021 by denilson-carlos

         

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP