Since you are calling setState, I'm assuming that your code represents one method of some larger component.
setState is an asynchronous operation so your console.log is probably being called before the component state has been updated. However, if you try to console.log in the component's render method, you'll get more predictable results.
Since you should use setState to update your state and not mutate it directly, you should not do this:
this.state.total += 250
This tries to directly update total, effectively trying to bypass setState. You normally want to do something like this instead:
this.setState({
total: this.state.total + 250
})
However, this is also incorrect because you want to calculate a new state based on a previous state. To be guaranteed to get the previous state (due to the asynchronous nature of setState) you should do this instead:
this.setState((prevState) => {
return {
total: prevState.total + 250
}
})
Also, this.setState({total: this.state.total}) is not necessary. If you do not want to change the state, simply do nothing.
Finally, when the component's state has been updated, the React framework will then re-render your component. Therefore, try to log total in your component's render method. You should then get the values you expect.