I don't understand what's going on 

```
componentDidMount() {
    console.log('componentDidMount');
    //const self = this; 
    let _id = this.props.match.params.id.toUpperCase();

    if (_id != this.state.id.toUpperCase()) {

        axios.get('/data/pricemultifull?fsyms=' + _id + '&tsyms=USD')
            .then(response => {
                // let _currentcoin = { ...resp.data.RAW.BTC.USD, ticker: _id };
                this.setState({ id: _id }); //this == undefined
            });
    }
}

```

I can get a response back but `this` is always undefined and I'm unable to `setState`. I'm using an arrow function which I thought was scope 'this' to the component level. I can fix it by making a new var and setting `'this'` before I make the request. I know that `this` should be working though. What am I missing?

My entire component 

```
import React, { Component } from 'react';
import axios from '../../axios';

class CoinViewer extends Component {

state = {
    coin: {},
    hasLoaded: false,
    id: ''
}

componentDidMount() {
    console.log('componentDidMount');
    //const self = this; 
    let _id = this.props.match.params.id.toUpperCase();

    if (_id != this.state.id.toUpperCase()) {

        axios.get('/data/pricemultifull?fsyms=' + _id + '&tsyms=USD')
            .then( resp => {
                // let _currentcoin = { ...resp.data.RAW.BTC.USD, ticker: _id };
                this.setState({ id: _id });
            });
    }
}

componentWillMount() {

}

componentWillUpdate() {

}

componentDidUpdate() {

}

getCompleteCoinData(_id) {

}

render() {

    return (
        <div>
            CoinViewer Component: {this.state.id} sads
        </div>
    )
}

```

}

export default CoinViewer