3 回答

TA贡献1818条经验 获得超3个赞
您不会从退回任何东西this.setState。您需要返回一个要与当前状态合并的对象。
addData(data) {
const key = data.type === 'income' ? 'income' : 'expenses';
this.setState(prevState => ({
// with Computed Property Names we can make our
// code concise and avoid conditionals
[key]: [...prevState[key], data]
}), console.log(this.state[key]));
}

TA贡献1798条经验 获得超7个赞
您的addData应该像这样
addData(data) {
if (data.type == 'income') {
let income=[...this.state.income];
income.push(data);
this.setState({
income:income
})
} else if (data.type == 'expense') {
let expenses=[...this.state.expenses];
expenses.push(data);
this.setState({
expenses:expenses
});
}
}
添加回答
举报