Код выполняется не в том порядке в котором вы его ожидаете.
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')
);