Hannahs was born and raised in Little Rock, Arkansas and attended high school at Pulaski Academy. He was a three-time All-District selection and was named first team 4A All-State in his junior and senior seasons with the Bruins. He committed to Texas Tech University after his junior season after averaging 26.2 points per game and shooting 51 percent from three. In his senior season, Hannahs averaged 20 points per game and led Pulaski to the 4A state championship game and scored 43 points in a loss to Clarksville High School.
College career
Texas Tech
Hannahs began his collegiate career at Texas Tech. He averaged 6.9 points as a freshman and 7.7 points per game as a sophomore while appearing mostly as a three-point specialist and sixth man off the bench. He set the Texas Tech season record for free throw percentage with 92.3 in his sophomore season. Following the end of the season, Hannahs announced that he would be transferring to the University of Arkansas.
Arkansas
Hannahs played for the Arkansas Razorbacks for the final two seasons of his eligibility after sitting out one year due to NCAA transfer rules. In his first season with the team, Hannahs led the Razorbacks with 16.5 points per game and lead the Southeastern Conference with 81 three pointers made and a.433 three point percentage. He was named to the Jerry West Award watchlist going into his redshirt senior season. Hannahs again led Arkansas in scoring in his final season with 14.4 points per game and led the SEC with a 90.8 free throw percentage and was named second team All-SEC by NBCSports.com. He scored 1,047 points for the Razorbacks, becoming the fifth Arkansas player to score 1,000 points in two seasons, and finished ninth in school history with 155 three pointers made and with the third-best free throw percentage at.889.
Professional career
Memphis Hustle (2017–2019)
Hannahs originally committed to play overseas for AZS Koszalin of the Polish Basketball League but ultimately opted to sign with the Memphis Hustle of the NBA G League on October 6, 2017. In his first professional season, Hannahs appeared mostly as the Hustle's sixth man and averaged 9.2 points per game while shooting 44.1 percent on three point shots and 90.5 percent from the free throw line. He returned to the Hustle for a second season and was the only player on from the previous year's team on the roster. He averaged 14.5 points, 1.8 rebounds and 1.4 assists in 49 games, again as the Hustle's primary option off the bench, and led the G League with a 92.6 free throw percentage. Following the end of the season, Hannahs participated in the 2019 G-League Elite Camp along with other top G League players and college prospects.
On March 30, 2019, the Memphis Grizzlies signed Hannahs to a 10-day contract. Hannahs made his NBA debut on March 31, 2019 in a 113-96 loss to the Los Angeles Clippers, scoring four points on 2-of-7 shooting with four assists and one rebound in 13 minutes of play. He was waived by the Grizzlies on April 4, 2019 after appearing in two games, scoring eight total points with a rebound and five assists. Following the end of the NBA season, Hannahs was named to the Grizzlies roster for the 2019 NBA Summer League. Hannahs was named to the NBA G League Elite Team for the G League International Challenge in Montevideo, Uruguay. He averaged 14 points per game in the tournament, including a 21-point performance off the bench in the quarterfinals against the Urugayan League Elite team, as the G League Elite eventually fell in the final to Bayern Munich of the EuroLeague. Hannahs was re-signed by the Grizzlies on October 14, 2019, but was waived the next day.
Second stint with Memphis Hustle (2019–2020)
On October 27, 2019, Hannahs returned to the Hustle for a third season. Hannahs was named the G League Player of the Week on December 2, 2019 after scoring 28 points against the Oklahoma City Blue and 32 points against the Maine Red Claws. He scored 30 points and had six rebounds, two assists and one steal in a 128-113 victory over the Rio Grande Valley Vipers on January 1, 2020. Hannahs was named Midseason All-NBA G League for the Western Conference. Hannahs averaged a team-leading 21.4 points per game on the season and was named third team All-NBA G League.
Second stint with Memphis Grizzlies (2020)
Hannahs was signed to a second 10-day contract on February 21, 2020. Hannahs was later waived by the Memphis Grizzlies on February 27, 2020.