I feel your pain, I have a 2.5year old DD. We get exactly the same eat something one day, refuse it another and it's something I really get furious (inside) over, though I try to seethe inside and not react to her. I hate food waste, and I hate the bloody whinging and the fact my own meal is also ruined as she whines and grumps and clambers up my legs/onto my lap constantly through the meal, demanding milk instead (she's breastfed).
I don't have a strategy as such, but I always try and make sure the meal is something she is likely to eat some or all of, eg she will always have two of: cucumber, tomato, broccoli, peas, baked beans, other pulses on her plate as these are the veg things she does eat. I might then also add a piece of carrot/spoon of mashed swede/sweetcorn etc etc if we are having it so she can try it if she wants to but I don't insist she does. Infact I try to not even ask her to, just leave it there, but am not great at this- it's just too tempting to try and cajole/beg/suggest.
I also sometimes find it's a matter of presentation, eg she absolutely will not touch soup or things in a bowl that could be soup, but if I make a puy lentil, bacon & veg (unblended) soup, I can used a slotted spoon to lift a load of lentils, bacon and the v finely diced carrot etc out and put it on a plate minus the liquid. I grate cheese on top and she will shovel it in, just like lentil chilli which is her favourite.
Or today I made a stuffed cheese & onion loaf, but left the end section unstuffed so it was just normal bread, sliced hers and made it a normal cheese sandwich, so minimal extra work but acceptable to her.
When she just won't eat it for god only knows what reason, as happened yesterday when DH made pasta, pesto & peas for lunch, we put it in the fridge and moved on. She was offered fruit (and ate a banana & apple) as per usual after a meal. But we didn't make a main meal alternative. We made sure we had a protein based snack to hand for the afternoon to try and redress the balance and prevent hunger meltdown. Those Nakd raw fruit & nut bars are quite good for this.
The trouble really is dinner though - breakfast and lunch issues piss me off but I try and breeze through them and think tough shit, you will eat the next meal then won't you, allowing her usual fruit/nuts/cheese type snacks at normal points. But if she won't eat dinner it's a nightmare as she demands breastfeeding, and will feed loads in the night instead to make up for it. She still normally feeds 2-3 x a night (don't ask, I am knackered) but dinner refusal can make for a good 5 wakings and much longer feedings. So if dinner is a disaster we tend to give it an hour and then try and shovel in a pile of greek yogurt and maybe also some bread/banana about half an hour before bed so she's not hungry.
I know that may not be the best idea in terms of teaching her she can reject dinner, but my sleep is important too and I am far too tired to be making it worse if I don't have too!
Epic post, sorry, but we don't know the answer either, but you are not alone and YANBU it is so bloody tiresome.