Do this:
Clean up the grow area if it's dirty....and I mean CLEAN!
Get a bottle of hydrogen peroxide (the regular stuff from the grocery store that's already diluted)...
Measure 1/2 cup of it and mix it with one gallon of water to dilute it even more
Put your fabric pot in a tub or bucket
Pour the H2O2 solution onto the soil let it sit for a minute or two
Replace the pots and set some yellow sticky traps around them
Wait a few days and check the sticky tape
Go back to normal watering
If gnats persist, then repeat the process from above about every other watering.
You WILL see leaves turning yellow from this process and you can damage plants if done excessively (or so I'm told), but all my plants manage to come back strong(er?) every time! I rarely have to repeat the process twice...but, again, I keep a VERY clean grow area.
That's what I do and it works for me. I've done it many times. That's all I can tell ya!