A common, though certainly not universal, paradigm for many successful researchers in the TCS community is as follows: Know a few basics at an undergraduate level, such as logic, linear algebra, probability, optimization,graph theory, combinatorics, basic abstract algebra. Beyond that, don't force yourself to learn anything else until you really think you need it to crack that problem you've been struggling with for months, or if you think you would really enjoy learning something for the sake of it.
"How do I know that I need it if I've never seen it before?", you ask? Good question. Sometimes you get lucky and sense it: "You know what, this sub-problem I'm trying to tackle sounds a lot like that fourier transform thingamajiggy Fred won't shut up about. I'll have to check that out or trap Fred in a room and have him give me a quick run through the basics." Other times, you trap a bunch of more knowledgable people than yourself in a room, say by giving a seminar talk or something, and whine about how you can't solve this problem until Fred chimes in with "Hey, I bet you that you can solve this with Fourier Analysis. Let me show you how." In the end, you get a joint paper with Fred, you learned something new, and you and Fred are best buddies now and go out drinking every other Saturday night. Not a bad system.