我在ReactJS类中创建了一个名为addTotal(price)的方法。现在我必须将一个变量传递给setState()中的一个函数,但它不起作用:
addTotal(price){
this.setState(function(prevState, props, price) {
return {total: this.state.total + price};
});
}
答案 0 :(得分:1)
您应该将函数传递给值并将其返回值保存到状态。你试图解决这个问题的方式似乎不合逻辑。试试这个:
addTotal(price){
let { total } = this.state;
total = total + price;
this.setState({total};
}
答案 1 :(得分:0)
问题是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};
});
}
答案 2 :(得分:0)
请参阅有关State Updates May Be Asynchronous的部分,并使用prevState
代替this
。除此之外,功能签名不正确。看起来应该是这样的
addTotal(price){
this.setState(function(prevState, props) {
return {total: prevState.total + price};
});
}