People have been hating Gerrymandering for quite a while. I haven't seen a universally-appreciated solution to the problem yet, though I would love to see one if one existed.
Let us note the basic issues with gerrymandered Congressional districts - in such a district, the minority party, and even more moderate elements of the dominant party, can be ignored. The dominant party can be sure that whatever candidate they put on the ballot will carry the district. These districts then generally get ignored by all parties in campaigning, as the result is pretty much a done deal. You will often see the dominant party running for House of Representatives unopposed in such districts.
One basic solution is for the legislature to hand over its districting power to a non-partisan body, so you don't get districts that have been engineered to be highly dominated by one party or the other.
"In Iowa, the nonpartisan Legislative Services Bureau determines boundaries of electoral districts. The bureau forbids considerations of incumbent impact, previous boundary locations, and political party proportions while satisfying federally mandated contiguity and population equality criteria. Iowa's resulting districts are generally regular polygons, not strangely shaped, politically motivated lines."
If you don't trust that body to be non-partisan, you can form it to have equal representation: Say a party of five - two chosen by each major party, and one that is chosen by the four.
Another solution was a "blanket primary", in which party membership plays no part. As a voter, you walk in and you vote for *whoever* you want on the ballot, regardless of party affiliation. You could choose a democrat for Governor, a Republican for your State Senator, and a Green party member for you City Council. The top vote-getter in each party advances to the general election.
These have been tried (instituted by the voters) in California and Washington State. The political parties *hated* blanket primaries, and sued to have them changed. The Supreme Court shot blanket primaries down, on the basis that infinges on the party's right of free association.
https://supreme.justia.com/cases/federal/us/530/567/case.html
Folks in CA and WA worked hard to find a way to work it (led by then Gov. Schwarzenegger, would you believe?). The found a Constitutional solution - the top two vote-getters *regardless of party* go to the general election. So, you can end up with two Democrats and no Republicans on the ballot for the Governor's office in the final election, as an example. So, now in CA and WA, in the primaries, voters vote for *anyone*, and get the top-two folks on the ballot, no matter what party they are in.
The result is that in the primaries, if the usual hyper-partisan candidate the majority party would put up can be effectively challenged. Since the voters no longer care about party lines in the primary, a moderate can attempt to scoop out otherwise ignored voters from both parties, and beat out a hyper-partisan candidate.