![](/img/trans.png)
[英]JS says an object is undefined even though it shows with console.log
[英]React state is undefined , even though console.log shows it
我研究了 state 无法识别的其他情况,但我仍然未能成功尝试从格式为 [{},{}...] 的 UI 操作中减去数据。 我已经设法使用此代码添加到数组中,同时它还计算项目的总数(subTotal 和 products 是通过回调函数获得的子组件的道具):
const updateTotalPriceAndUpdatePieChartData = (subTotal,product) => {
//from here
setPieChartData([...pieChartData,{product,subTotal}])
//until up, we handle what data we need for the pieChart
setTotal(total => total + (Number.isFinite(subTotal) ? subTotal : 0))
console.log("TOTAL WAS COMPUTED")
}
这是保存数组的 state:
const [pieChartData,setPieChartData]=React.useState([])
然而,当我尝试从 state 数组中删除一个 object 时(当一个项目也被删除时),我尝试以下操作:
const substractSubTotalAndSubstractTotalForPieChart = (subTotal,product,pieChartData) => {
setTotal(total - subTotal)
const lastPieChartData=pieChartData.filter(item => item !={subTotal,product})
setPieChartData(lastPieChartData)
}
它说pieChartData
身份不明。 你能告诉我我能做什么吗?
在substractSubTotalAndSubstractTotalForPieChart
方法中,有一个参数pieChartData
,但也有一个同名的state
。 所以在 function substractSubTotalAndSubstractTotalForPieChart substractSubTotalAndSubstractTotalForPieChart's
scope 内部会发生什么,参数pieChartData
优先于 Z9ED39E2EA931586B76A985A69E24。
因此,在您的方法调用中,当您不传递此参数时,将使用未初始化参数的默认值,即 undefined。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.