I find this pretty hard to believe. He won 2016 thanks to the Rust Belt, Ohio, Iowa and Florida flipping from blue to red. In some cases this happened because of very small margins. I can see him winning Ohio and Iowa again, but keeping Pennsyvlania, Michigan, Wisconsin and Florida is going to be very challenging for him. He won Wisconsin by 29,000 votes, Michigan by 11,000 votes and Pennsylvania by 48,000 votes. Those are very small margins.
In the 2018 mid-term election Democrats did pretty good in Michigan, Wisconsin and Pennsylvania.
In Florida the big news for 2020 elections is that 1 million of ex-felons got their voting rights restored. This is bad news for Republicans, since the ex-felons tend to belong to social groups that vote more for Democratic candidates. Margins in the 2018 elections were razor-thin in favor of the GOP. Ex felons voting might be what tips the balance against any GOP candidate, let alone someone as polarizing as Trump.
Michigan has 10 electoral votes, Wisconsin 16, Pennsylvania 20 and Florida 29. Assuming NO other state flips Trump has to win AT LEAST either all three the Rust Belt States, or one of Rust Belt states AND Florida. That's a tall order.
Potentially it could get even worse for Trump. Due to the Democratic successes in Arizona even Fox News thinks that the Dems have a shot at winning the state. If the Dems win Arizona, then Trump needs to win at least TWO of the Rust Belt states AND Florida.
But there's even more potential for things to get EVEN WORSE for the GOP. 2018 showed that Georgia and TEXAS of all places are becoming much tighter races. If the Dems win Arizona AND Georgia Trump needs to win all three of the Rust Belt razor-thin margins AND Florida to win. If the Dems lose Arizona and Georgia, but somehow manage to pull Texas in their column, Trump loses EVEN if he wins in all three of the Rust Belt states AND Florida.
Trump desperately needs Florida and at least ONE of the Rust Belt states he won by small margins, AND he needs to watch out for Dem gains in Arizona, Georgia, even Texas. It's an uphill battle, especially if he faces a Democrat who's not dumb enough to take the Rust Belt for granted (which, after the shock 2016, no Democrat who's not a complete moron will) and who is charismatic enough to appeal to Florida voters, or (even worse for Trump) Florida AND Arizona, or Georgia, or even Texas voters.
That's even leaving aside Ohio, Iowa and North Carolina, which Trump won by bigger margins and haven't switched or changed as much in 2018, but will still be targets for Democratic campaigns in 2020. If Trump loses Ohio he needs to win Florida AND Pennsylvania. If he loses Iowa he needs to win AT LEAST all three of the Rust Belt states, OR Florida AND one of the Rust Belt states. If he loses Ohio AND Iowa he needs to win Florida AND Pennsylvania AND Michigan.
Trump has actually a negative approval rating in all of the Rust Belt states AND Iowa AND Arizona, equal approval and disapproval in Ohio, and only a marginal positive approval rating in Florida, North Carolina and even Georgia. While approval ratings don't necessarily translate to electoral successes or failures Trump has little reason to look forward to an easy re-election.
If we classified all states were Trump has a positive approval rating as red, all of those where he has a negative approval rating as blue, and those with neutral approval as toss-ups, Trump loses the election 295 vs 225, with 18 toss-up votes. If we're more elastic and classify all states within the 5% of positive-negative approval rating bracket at toss-ups, while those with more than 5% support or disapproval for Trump as, respectively, red or blue, the Dems have 245 "safe" electoral votes, while Trump only has 150 "safe" ones. The Dems only need their "safe" votes and either Florida OR Virginia and Pennsylvania to win. Trump needs ALL of his "safe" votes, several of the votes from the states which are only lukewarm at best about him (including Florida), AND Arizona, Ohio and Pennsylvania.