import React, {Fragment, useState,useCallback } from "react";
const ProcessingSearch = () => {
const [price, setPrice] = useState({ maxPrice: 0, minPrice: 0 });
const inputMaxMin = useCallback(
({ target: { value, name } }) => {
name === "maxPrice"
? setPrice(({ minPrice }) => ({ maxPrice: value, minPrice }))
: setPrice(({ maxPrice }) => ({ minPrice: value, maxPrice }));
},
[price]
);
return (
<Fragment>
<form onSubmit={() => {}}>
{"Min"}
<input
{...ProcessingSearchInputPrice}
value={price.minPrice}
onChange={inputMaxMin}
/>
{"Max"}
<input
{...ProcessingSearchInputPrice}
value={price.maxPrice}
onChange={inputMaxMin}
/>
<input type="submit" title={"Submit price range"} value={"Go"} />
</form>
</Fragment>
);
};
使用价格时出现错误:
React Hook useCallback具有不必要的依赖性:'price'。要么排除 或删除依赖项数组react-hooks / exhaustive-deps
答案 0 :(得分:2)
这是对useCallback
实现的警告(不是因为使用price
)。
作为警告状态,从依赖项数组price
中删除[price]
变量:
const inputMaxMin = useCallback(
({ target: { value, name } }) => {
name === "maxPrice"
? setPrice(({ minPrice }) => ({ maxPrice: value, minPrice }))
: setPrice(({ maxPrice }) => ({ minPrice: value, maxPrice }));
},
[] // <--- remove price, not used within the hook.
);
在这种情况下,我认为您可以不使用useCallback
,因为您没有记住任何内容,请查看示例。
答案 1 :(得分:0)