如何将光标位置保持在react输入元素中

red*_*hka 7 javascript ecmascript-6 reactjs

光标一直走到尽头.从字符串中间编辑时如何保持光标位置?

在此输入图像描述

我使用的代码是:

const rootElement = document.getElementById('root');

class MyFancyForm extends React.Component {

    constructor(props) {
        super(props);
        this.state = {myValue: ""};
    }

    handleCommaSeparatedChange = event => {
        const {value} = event.target;
        this.setState({myValue: value});
    };




    render() {
        return(
            <form >

                <div>
                    <label>
                        Cursor position looser
                        <br />
                        <input onChange={this.handleCommaSeparatedChange} value={this.state.myValue} />
                    </label>
                </div>


            </form>
        )
    }
}

const element = <MyFancyForm />;

ReactDOM.render(element, rootElement);
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能实现它?

小智 10

只需更改valuedefaultValue- 它对我来说在 codepen 和 codeandbox 中都有效

class MyFancyForm extends React.Component {

    constructor(props) {
        super(props);
        this.state = {myValue: ""};
    }

    handleCommaSeparatedChange = event => {
        const {value} = event.target;
        this.setState({myValue: value});
    };




    render() {
        return(
            <form >

                <div>
                    <label>
                        Cursor position looser
                        <br />
                        <input onChange={this.handleCommaSeparatedChange} defaultValue={this.state.myValue} />
                    </label>
                </div>


            </form>
        )
    }
}


  ReactDOM.render(
    <MyFancyForm />,
    document.getElementById('root')
  );

Run Code Online (Sandbox Code Playgroud)

  • 当我们通过使用 int 'onChange' 事件格式化值时不起作用。 (6认同)