React报错:
Uncaught TypeError: this.state.cartData is not iterable
at App.addCartData
Uncaught TypeError: Cannot read properties of undefined (reading 'indexOf')
相关代码:
App.js 中类组件App中相关代码
state = {
cartData:
{
data: [],
totalAmount: 0,
totalCost: 0
}
}
addCartData = meal => {
let newData = [...this.state.cartData]
if( this.state.cartData.data.indexOf(meal) !== -1 ){
this.setState(state => {
newData.data.meal.amount += newData.data.meal.amount
newData.totalAmount += newData.data.meal.amount
newData.totalCost += newData.data.meal.amount.price
return {
state: {
cartData: [...newData]
}
}
}
)
}
else{
newData.data.push(meal)
newData.data.meal.amount = 1
newData.totalAmount += 1
newData.totalCost += newData.data.meal.amount.price
this.setState(state => {
return {
state: {
cartData: {
}
}
}
} )
}
this.setState(state => {
return {
state: {
cartData: {...newData}
}
}
}
)
}
cartData被定义为一个对象,而在addCartData函数中却被当做数组来使用
import React, { Component } from 'react';
import ImageCode from '../ImageCode'
export default class Index extends Component {
getImageCode = (value) => {
console.log(value.toLowerCase()); // 二维码结果
}
render() {
<div>
<ImageCode getImageCode={this.getImageCode} />
</div>
}
}