繁体   English   中英

React state 未定义,即使 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM