【发布时间】:2020-11-20 19:12:38
【问题描述】:
你好,我知道了:
第 82:5 行:React Hook useCallback 缺少依赖项: '产品'。包括它或删除依赖数组。你可以 如果您只需要,还可以进行功能更新 'setProduct(p => ...)' 'setProduct' 调用中的'product' react-hooks/exhaustive-deps 行 95:5:React Hook useCallback 缺少依赖项:'product'。 包括它或删除依赖数组。你也可以做一个 功能更新 'setProduct(p => ...)' 如果您只需要 'product' 'setProduct' 调用 react-hooks/exhaustive-deps
这是我的产品状态:
const [product, setProduct] = useState({
sku: "",
description: "",
unisex: true,
woman: false,
man: false,
styles: [],
materials: [],
selectedFilesImages: [],
selectedFilesVideos: [],
name: "",
discountPrice: "",
categories: [],
defaultPicture: [],
shop: 0,
variants: [],
price: "",
});
这是我使用 useCallBack 的两个函数
const addSelectedFilesImages = useCallback(
(files) => {
setProduct({ ...product, selectedFilesImages: files });
console.log(product.selectedFilesImages);
},
[product.selectedFilesImages]
);
const addSelectedFilesVideos = useCallback(
(files) => {
setProduct({ ...product, selectedFilesVideos: files });
console.log(product.selectedFilesVideos);
},
[product.selectedFilesVideos]
);
这是我传递这些函数的组件
<div className="col-sm-6">
<FileManger
addSelectedFiles={addSelectedFilesImages}
selectFiles={product.selectedFilesImages}
acceptFormat="image/*"
videoOrPics="Drop files here or click to upload."
/>
</div>
<div className="col-sm-6">
<FileManger
addSelectedFiles={addSelectedFilesVideos}
selectFiles={product.selectedFilesVideos}
acceptFormat="video/*"
videoOrPics="Drop video files here or click to upload."
/>
</div>
如果我在每次更新产品时都将产品放入依赖项中,还会渲染 FileManger,则 FileManager 基于 product.selectedFilesVideos 或 product.selectedFilesImages
【问题讨论】:
标签: reactjs