Я пытаюсь сложить все калории в моем массиве, которые хранятся в состоянии.
id: shortid.generate(),
text: this.state.text,
calorie: this.state.calorie
Это структура данных, которая хранится в массиве состояний еды
В настоящее время я работаю с forEach и использую редуктор для суммирования значений, но его выражение «уменьшить» не является функцией. Я не уверен, что делаю неправильно.
class App extends Component {
state = {
meals: []
};
addMeal = meal => {
this.setState({
meals: [meal, ...this.state.meals]
});
};
onDelete = id => {
this.setState({
meals: this.state.meals.filter(meal => meal.id !== id)
});
};
render() {
return (
<div className="container">
<div className="jumbotron">
<h2>Calorie Counter</h2>
<hr />
<Form onsubmit={this.addMeal} />
<table className="table table-striped">
<thead>
<tr>
<th>Meal</th>
<th>Calories</th>
<th />
</tr>
</thead>
<tbody>
{this.state.meals.map(meal => (
<Meal
key={meal.id}
meal={meal}
onDelete={() => this.onDelete(meal.id)}
/>
))}
<tr>
<td>Total:</td>
<td>
{this.state.meals.forEach(meal =>
meal.reduce(function(y, x) {
return y + x;
}, 0)
)}
</td>
<td />
</tr>
</tbody>
</table>
</div>
</div>
);
}
}
Я пытаюсь отобразить общее количество калорий внутри еды в jsx