DataLookup like a DataCube with collection values
这个行和设计师讨论下,插入这个字符的行为有点不符合原生的表现❤
比如原生设置了 maxLength,这时无法插入任何字符了。

这个行和设计师讨论下,插入这个字符的行为有点不符合原生的表现❤
比如原生设置了 maxLength,这时无法插入任何字符了。
确认了下,目前的行为属于 bug,如果输入框内的字符已经达到上限了,再输入的话不应该修改输入框内的值了。
光标的问题也需要解决下。
光标的问题是一个诡异的 bug。
如果你对 input 的 value 做了拦截,包装了一下,然后返回进去或者做一些限制,没有返回给 input,光标就会丢失。
import React, { useState, useRef, useEffect } from "react";
export default function App() {
const [value, setValue] = useState("12345678");
const inputRef = useRef();
const onChange = (e) => {
let newValue = e.target.value;
if (value.length === 8) {
// do noting
return;
} else {
setValue(newValue);
}
};
return (
<div className="App">
<input ref={inputRef} value={value} onChange={onChange} />
</div>
);
}
React 也对这个问题进行了讨论,https://github.com/facebook/react/issues/955
还有 stackoverflow https://stackoverflow.com/questions/28922275/in-reactjs-why-does-setstate-behave-differently-when-called-synchronously/28922465#28922465
所以后续解决办法是不允许再输入吗 还是将光标置于正确的位置。 如果是后者的话,我可以提一个PR解决这个问题。
所以后续解决办法是不允许再输入吗 还是将光标置于正确的位置。 如果是后者的话,我可以提一个PR解决这个问题。
不允许输入是确定的。
光标问题,如果不允许输入的,直接移动到后面问题也不大?
当然也可以控制下光标的位置,保持光标在上次输入的地方。
欢迎 PR。