我有一个可从REST API获取帐户中可用资金的类。此号码处于保存状态。
我需要创建一个单独的状态,在其中存储所有状态更改的数组
例如,我的状态availableFunds
为:86
所以我想我的availableFundsArray
返回:[86]
如果我的州availableFunds
将数字更改为例如:60
所以我想我的availableFundsArray
返回:[86, 60]
class AvailableFunds extends Component {
constructor() {
super();
this.state = {
availableFunds: [],
availableFundsArray: [],
};
}
componentDidMount() {
this.Auth.availableFunds(this.props.id)
.then(res => {
if (res) {
this.setState({
availableFunds: res.reduce(
(accumulator, currentValue) =>
accumulator + currentValue.available_funds,
0,
),
});
}
})
.catch(err => {
console.log(err);
});
}
答案 0 :(得分:1)
设置setState时,请引用状态的前一种形式并将其添加到其中。
让availableFunds为数字而不是数组。
let funds = [this.state.availableFunds];
funds.push(this.state.availableFunds)
this.setState({
availableFundsArray: funds
})
答案 1 :(得分:0)
在if语句中,您可以在 setState 之前计算可用资金,并使用该变量使用prevState更新状态,如下所示
this.Auth.availableFunds(this.props.id)
.then(res => {
if (res) {
const amount = res.reduce((accumulator, currentValue) => accumulator + currentValue.available_funds, 0, )
this.setState( prevState => {
return {
availableFunds: amount,
availableFundsArray: [...prevState.availableFundsArray, amount]
}
});
}
})
.catch(err => {
console.log(err);
});