FuncSharp icon indicating copy to clipboard operation
FuncSharp copied to clipboard

DataLookup like a DataCube with collection values

Open siroky opened this issue 4 years ago • 0 comments

siroky avatar Jan 24 '21 18:01 siroky

这个行和设计师讨论下,插入这个字符的行为有点不符合原生的表现❤

比如原生设置了 maxLength,这时无法插入任何字符了。

image

shijiatongxue avatar Dec 13 '21 07:12 shijiatongxue

这个行和设计师讨论下,插入这个字符的行为有点不符合原生的表现❤

比如原生设置了 maxLength,这时无法插入任何字符了。

image

确认了下,目前的行为属于 bug,如果输入框内的字符已经达到上限了,再输入的话不应该修改输入框内的值了。

光标的问题也需要解决下。

shijiatongxue avatar Dec 13 '21 07:12 shijiatongxue

光标的问题是一个诡异的 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>
  );
}

shijiatongxue avatar Dec 13 '21 10:12 shijiatongxue

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

shijiatongxue avatar Dec 13 '21 10:12 shijiatongxue

所以后续解决办法是不允许再输入吗 还是将光标置于正确的位置。 如果是后者的话,我可以提一个PR解决这个问题。

boomler avatar Dec 14 '21 03:12 boomler

所以后续解决办法是不允许再输入吗 还是将光标置于正确的位置。 如果是后者的话,我可以提一个PR解决这个问题。

不允许输入是确定的。

光标问题,如果不允许输入的,直接移动到后面问题也不大?

当然也可以控制下光标的位置,保持光标在上次输入的地方。

欢迎 PR。

shijiatongxue avatar Dec 14 '21 03:12 shijiatongxue