[英]How to use usecallback method in onchange handler using react and typescript?
Hi how to use useCallback method in the onchange handler using react and typescript.嗨,如何使用 react 和 typescript 在 onchange 处理程序中使用 useCallback 方法。
i have code like below,我有如下代码,
const [filter, setFilter] = useState(undefined);
return (
<Select
onChange={(selected: any) => { //use usecallback
const selectedItems = map(selected, 'value');
return setItem({
prop1: filter?.prop1,
prop2: selectedItems,
});
}}
/>
);
could someone help me with this.有人可以帮我解决这个问题。 thanks.
谢谢。
const [filter, setFilter] = useState(undefined);
const onChange = useCallback((selected) => {
const selectedItems = map(selected, 'value');
setItem({
prop1: [],
prop2: selectedItems,
});
}, [setItem, filter])
return (
<Select
onChange={onChange}
/>
);
But why do you need useCallback
here?但是这里为什么需要
useCallback
呢? It usually used for memoizing the callback in case if you have your dependencies changed.它通常用于记忆回调,以防您更改了依赖项。 In your case I don't see it.
在你的情况下,我看不到它。
You don't use it directly in the onChange, you have to extract the function:你不要直接在onChange中使用,要提取function:
const [filter, setFilter] = useState(undefined);
const memoizedCallback = React.useCallback(
(selected: any) => {
const selectedItems = map(selected, 'value');
return setItem({
prop1: filter?.prop1,
prop2: selectedItems,
});
},
[filter, setItem]
);
return (
<Select
onChange={memoizedCallback}
/>
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.