Я пытаюсь добавить вещи в список в виде массива состояний.Однако, с моим текущим кодом, первый элемент не добавляет себя должным образом.
export default class Main extends React.Component {
constructor(props) {
super(props);
this.state = {
list: [],
total: 0.00,
...
}
}
//some unimportant code here
addToList = item => {
this.setState({list: [...this.state.list, item]});
//This method call for a method that gets the total price of all the items
this.getTotal();
}
//this method works fine, except with the first element
getTotal() {
this.setState(({sum= 0.0, items, list}) => {
items.forEach(element => {
if(this.state.list.length !== 0.0) {
if(this.state.list.includes(element.name)) {
sum += parseFloat(element.price);
}
}
});
this.setState({total: sum});
});
}
}
Когда я console.log
в состоянии list
, я получаю пустой массив для первого элемента, а затем элементы задерживаются на единицу.Поэтому, если я добавлю элемент A
и посмотрю на консоль, я ничего не вижу.Когда я добавляю элемент B
и смотрю на консоль, я вижу Array
с элементом A
.Любые идеи относительно того, что вызывает это?