私は、異なる価格値が与えられた3つの「製品」の合計「価格」を計算するために、スパン「+」または「 - 」をクリックするたびに渡される反応容器内の加算および減算関数を持っています。私の関数は、合計価格値を計算しますが、常に一歩前ですか?
私の問題は、どちらかのボタンを最初にクリックしたときにコンソールが初期値0を最初にログアウトしてから、その後にクリックするたびに加算または減算されます。
たとえば、「リンゴ、価格:2」をクリックした場合、コンソールには0が記録されます。次に「梨、価格:5」をクリックし、コンソールに2を記録します合計に5を加算するのではなく、前のクリックからの値。
私の加算機能と減算機能に問題がありますか?コンソールからログアウトする前にstate.totalを変更するのはなぜですか?
class ProductList extends React.Component {
constructor(props) {
super(props);
this.state = {
total: 0
}
this.addFunction = this.addFunction.bind(this);
this.subtractFunction = this.subtractFunction.bind(this);
}
addFunction(product) {
var x = Number(product.price)
this.setState({total: this.state.total + x});
console.log('total is ' + this.state.total)
}
subtractFunction(product) {
var x = Number(product.price)
this.setState({total: this.state.total - x});
console.log('total is ' + this.state.total)
}
render() {
var createProducts = this.props.products.map((product, i) => {
return <Product
key={i}
title={product.title}
price={product.price}
addProductSetUp={() => this.addFunction(product)}
subtractProductSetUp={() => this.subtractFunction(product)}
/>
});
return (
<div>
<ul>
{createProducts}
</ul>
</div>
);
}
}
が、これは完璧です、ありがとうございました。 – user74843