Well, I can testify that gymnastics can be like that certain periods. It sometimes has made me want to quit. What helps me continue progressing is finding little goals to help me keep moving. This is because oftentimes I look at the big picture of a certain skill, or even a season, and see how little progress I've made and get frustrated. These goals can be things like, make one beam series, then the next practice make two. Etc. Or point your toes during your kips, have a good set on floor, stay happy and relaxed during beam, and so on.
And for me whats helpful, is I have learned to have a mindset of, what I do now does NOT affect my next turn. For example: If I don't land my first tumbling pass now, it doesn't mean I need to get frustrated because I'm having a bad day. It means I had an off turn, but I'll continue to try my hardest next time. If I don't go for my series, instead of letting myself get frustrated to the point of almost tears, I try my best to stay relaxed and happy, and put my full effort into the next one. This mindset starts with fake-it-til-you-make-it positive self talk ("its okay i can do better this time" "im not going to freak out because this is within my control" "im not having the best event rotation but we will stay in happy and try harder next time") and progresses to truly being okay with not always being your best, which helps a relaxed, happy mindset. Sure I get frustrated, but I literally just don't let those frustrated feelings grow anymore when I feel the start, I replace them with self talk and deep breaths. And then you will notice that having an off meet doesn't throw your season off the rails, performing is so much more fun, etc.