假设我想创建经常需要的useInputState
钩子:
function useInputState(initialValue) {
const [value, setValue] = useState(initialValue);
const onChange = useCallback(
e => setValue(e.target.value),
[ /* ??? */ ]
);
return { value, onChange };
}
Run Code Online (Sandbox Code Playgroud)
我需要将setValue
setter 函数添加到回调的依赖项中吗?我们可以指望二传手始终保持不变吗?当我尝试时,这似乎有效,但这是好的做法吗?或者我们应该假设回调闭包中的任何内容都可以更改并影响其实现?
(我可以想到更多最终提出同样问题的例子)