Код выполняется не в том порядке в котором вы его ожидаете.
var IP = 'IP еще не определен'
class App extends React.Component {
  constructor(props) {
    super(props)
        
    this.getMyIP = this.getMyIP.bind(this)
    this.handleClick = this.handleClick.bind(this)
  }
  
  async getMyIP() {    
    console.log('1. Вошли в функцию getMyIP()')
    const response = await axios.get('https://httpbin.org/get')
    console.log('2. Обрабатываем результаты запроса')
    IP = response.data.origin
    console.log('3. Возвращаем значение')
    return IP
  }
  
  async handleClick(e) {
    let ip = await this.getMyIP()
    console.log('4. IP определен:', ip)
  }
  
  render() {
    return (
      <div>
        <input type='button' value='click' onClick={this.handleClick}/>
      </div>
    )
  }
}
ReactDOM.render(
  <App />,
  document.getElementById('root')
);