useControlled

useControlled 是一個自定義 hook,幫助你管理受控組件。它是 useState 的一個包裝器,允許你從外部控制組件的值。

Usage

Live Editor
function Demo() {
  const [state, setState] = useState<string>("");
  const [value, setValue] = useControlled(state, "");
  const [value1, setValue1] = useControlled(undefined, "非受控值");

  const handleChange = (event) => {
    setState(event.target.value);
  };

  const handleChange1 = (event) => {
    setValue1(event.target.value);
  };

  return (
    <>
      <input value={value} onChange={handleChange} />
      <p>受控值:{value}</p>
      <input value={value1} onChange={handleChange1} />
    </>
  );
}
Result

API

useControlledState

Returns

[T, (value: T) => void]: 包含以下元素的元組:

  • 當前值。
  • 更新當前值的函數。

Arguments

參數名描述類型預設值
value受控值T | undefined (必填)-
defaultValue默认值T (必填)-
onChange值改变时的回调((v: T, ...args: any[]) => void) | undefined-