Recentemente lendo alguns posts sobre react-native encontrei uma forma de melhorar um componente. Originalmente, eu o havia implementado com ternários, mas como se tratava de múltiplos estados possíveis tornava o código difícil de entender e manter.
stateModal === "wait" ? <>...</> 
: 
stateModal === edit ? <>...</> 
: 
stateModal === "delete" ? <>...</> 
:
stateModal === "finish" ? <>...</> 
: null
Basicamente eu tenho um componente de modal que tem alguns estados: wait, edit, delete, finish
A forma que encontrei para melhorar.
Definindo switch-case
const switchModalState = () => {
        switch (stateModal) {
            case "wait":
                return (
                  <>...</>
                    )    
            case "edit":
                return (
                    <>...</>
                    )
            case "delete":
                return (
                    <>...</>
                    )
            case "finish":
                return (
                    <>...</>
                )
            default:
                return (
                    <>...</>
                    )
        }
    }
Chamando função para renderizar
return(
        <Modal
        visible={modalVisible}
        animationType="slide"
        transparent={true}
        onRequestClose={() => setModalVisible(false)}
        >
            <View style={styles.modalContainer}>
                <View style={styles.modalContent}>
                    {switchModalState()}
                </View>
            </View>
        </Modal>
        )
}
Concluindo
Dessa forma fica mais simples para que outros desenvolvedores entendam o código e também facilita a manutenção, tornando mais fácil adicionar estados novos, ou editar um estado específico. Investir tempo em uma estrutura bem definida para lidar com os estados do modal não apenas facilita o trabalho para mim como desenvolvedor, mas também para qualquer pessoa que precise entender ou modificar o código no futuro.
Se quiser visualizar o código atualmente: https://github.com/olucascruz/control_equip/blob/main/src/components/ModalEditDelete.jsx
Refs:
https://dev.to/girordo/algumas-das-melhores-praticas-que-utilizo-diariamente-41c4
https://stackoverflow.com/questions/46592833/how-to-use-switch-statement-inside-a-react-component 
    
Top comments (0)