我正在尝试使用useCallback将setCount函数传递给Button组件,但输入中没有任何变化。cod
const Button = memo(({ value, useValue }) => {
return (
<Fragment>
<input
type={"text"}
value={value}
onChange={({ target }) => {
useValue(target.value);
}}
/>
</Fragment>
);
});
const App = () => {
const [count, setCount] = useState(0);
const SetCount = useCallback(() => setCount, []);
return (
<section className="counter">
<h1>Счётчик: {count}</h1>
<Button value={count} useValue={SetCount}>
-
</Button>
</section>
);
};
答案 0 :(得分:0)
useCallback
记住指定的回调。 () => setCount
回调是无操作的,因为未调用setCount
。这将与useMemo
一起使用,因为它应该返回一个回调:
const SetCount = useMemo(() => setCount, []);
这里都不需要它们。 useState
的setter函数是常量,应该作为回调传递。
应该是:
<Button value={count} useValue={setCount}>