JAVA程序光标移到后面_input 输入,从中间输入或删除后,光标都会移到最后面...

import React, { useState, useCallback, useEffect } from 'react';

import { Input } from 'antd';

export default function () {

const [value, setValue] = useState('test123');

const [value1, setValue1] = useState('test11111');

return (

value={value}

onChange={(val) => { setValue(val); }}

/>

value={value1}

onChange={(val) => { setValue1(val); }}

/>

)

}

function IIInput(props: any) {

const [value, setValue] = useState(props.value);

useEffect(() => {

if ('value' in props && props.value !== value) {

setValue(props.value);

}

}, [props.value])

const handleSetState = useCallback((v: any) => {

if (!('value' in props)) {

setValue(v)

}

if (props.onChange) {

props.onChange(v);

}

}, [props])

return (

{ handleSetState(e.target.value) }} />

)

}

class IInput extends React.Component {

static getDerivedStateFromProps(nextProps, prevState) {

if ('value' in nextProps && nextProps.value !== prevState.value) {

console.log('update props')

return {

value: nextProps.value

}

}

return null;

}

state: any;

constructor(props) {

super(props);

this.state = {

value: props.value

}

}

handleChange(val: string) {

const props = this.props;

if (!('value' in props)) {

this.setState({

value: val

})

}

if (props.onChange) {

props.onChange(val);

}

}

render() {

const { value } = this.state;

return (

{ this.handleChange(e.target.value) }} />

)

}

}

分别用类组件和函数组件进行测试

类组件输入框光标不会移至最后

函数组件输入框光标,每次从输入框中间进行操作后,都会移至最后

函数组件这个问题该如何解决,为什么会导致这个问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值