【发布时间】:2020-01-01 18:34:38
【问题描述】:
我在控制台中收到消息:
React Hook useEffect 缺少依赖项:'calculateTotalProductsPrice'。要么包含它,要么移除依赖数组
代码正在运行,但我不知道这是否是实现 useEffect 的正确方法
这里我有一个函数可以计算我的产品总价并在我的 useEffect 挂钩中调用它:
// Get all products the user added from my redux store
const allProductsAddedByUser = useSelector(state => state.createCampaign.campaign_products)
function calculateTotalProductsPrice() {
const productsArray = Object.values(allProductsAddedByUser)
const totalPrice = productsArray.reduce(function (prev, cur) {
return prev + cur.quantity * 125.0
}, 0)
return totalPrice
}
useEffect(() => {
calculateTotalProductsPrice()
}, [allProductsAddedByUser])
在我的 html 中,我这样调用函数:
<span>€ {calculateTotalProductsPrice()}</span>
如果我将 calculateTotalProductsPrice() 函数放在我的 useEffect 挂钩中,来自控制台的警告就消失了,但是我不能像以前那样调用我的函数,我收到错误 'calculateTotalProductsPrice' is not defined。我的函数现在在 useEffect 钩子里面,为什么我不能从外面调用她?
// Get all products the user added from my redux store
const allProductsAddedByUser = useSelector(state => state.createCampaign.campaign_products)
useEffect(() => {
function calculateTotalProductsPrice() {
const productsArray = Object.values(allProductsAddedByUser)
const totalPrice = productsArray.reduce(function (prev, cur) {
return prev + cur.quantity * 125.0
}, 0)
return totalPrice
}
calculateTotalProductsPrice()
}, [allProductsAddedByUser])
// Call function from my html
<span>€ {calculateTotalProductsPrice()}</span>
// Error calculateTotalProductsPrice is not defined
【问题讨论】:
标签: javascript reactjs