I wanted to append  % to the value entered in the text field. When I do so the cursor moves towards the end of the input text as shown below. But I wanted it two stays right after the value two-step backward. I tried the solution given here with event.target. But it doesn't work
             <StyledTextField
                          id="managePrctgFee"
                          name="managePrctgFee"
                          value={
                            this.state.managePrctgFee 
                              ? this.state.managePrctgFee
                                  .toString()
                                  .replace(/^0+/, '') + ' %'
                              : '0 %'
                          }
                          onChange={this.handleChange}
                          fullWidth
                        />
onChange
handleChange() {
      return e => {
        const val = e.target.value.toString().replace(/ |%|[a-zA-Z]/gm, '')
        
        e.target.selectionStart = val.toString().length - 3
        e.target.selectionEnd = val.toString().length - 3
        this.setState({...this.state,managePrctgFee:val})
      }
    }
But still, the cursor stays at the end after each input. I wanted the cursor to stay two strings before ie before  % This makes it UI wise better and easier delete the values written.
The End result should be like
 after each input
 after each input
I am not making the  % string outside the input box using a <span> since there is some UI complexity in my project to do that. Is there a way to do this way by moving the cursor two-step backward after each input

