Javascript 如何将变量传递给setState内的函数
我在ReactJS类中创建了一个名为addTotal(price)的方法。现在我必须将变量传递给setState()内的函数,但它不起作用:Javascript 如何将变量传递给setState内的函数,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,我在ReactJS类中创建了一个名为addTotal(price)的方法。现在我必须将变量传递给setState()内的函数,但它不起作用: addTotal(price){ this.setState(function(prevState, props, price) { return {total: this.state.total + price}; }); } 问题是,ReactJS setState()
addTotal(price){
this.setState(function(prevState, props, price) {
return {total: this.state.total + price};
});
}
问题是,ReactJS setState()中的函数仅适用于this.state和this.props对象。因此,您需要首先为this.state(this.state.price)创建一个price属性,然后在setState中使用它进行如下操作:
addTotal(price){
this.setState({price: price, total: this.state.total});
this.setState(function(prevState, props) {
return {total: prevState.total + prevState.price};
});
}
请参阅关于的部分,并使用prevState
而不是this
。此外,函数签名不正确。应该是这样的
addTotal(price){
this.setState(function(prevState, props) {
return {total: prevState.total + price};
});
}
您应该向函数传递一个值,并将其返回值保存到状态。你试图解决这个问题的方式似乎不合逻辑。试试这个:
addTotal(price){
let { total } = this.state;
total = total + price;
this.setState({total};
}