【发布时间】:2020-09-04 11:09:31
【问题描述】:
我试图计算已完成的任务,我相信逻辑应该是正确的,但似乎 this.setState({}) 根本没有响应/到达,它没有对 this.state({}) 中的数据“qtySelected”做任何事情因为console.log('ts') 在控制台中没有结果。任何人都知道为什么,也许是一些反应生命周期问题?
export class Main extends Component {
constructor(pros) {
super(pros)
this.state = {
tasks: [
{
id: 1,
content: "Sara's doctor and vaccine",
due: '2020-08-29',
completed: false
},
{
id: 2,
content: "Trash bags / facial masks / child allowance",
due: '2020-08-28',
completed: false
},
{
id: 3,
content: "Apply for Portugal nationality",
due: '2020-09-31',
completed: false
},
{
id: 4,
content: "My registeration card",
due: '2020-09-28',
completed: false
},
{
id: 5,
content: "contact ADEM",
due: '2020-12-31',
completed: false
},
{
id: 6,
content: "Pay loan",
due: '2020-09-03',
completed: true
}
],
qtySelected: 0
}
}
componentDidMount() {
this.countSelected = () => {
console.log('ts')
let tasksCompleted = this.state.tasks.filter(task => {
return task.completed === true
})
this.setState({
qtySelected: tasksCompleted.length
})
}
}
render() {
return (
<div>
<table>
<tfoot>
<tr>
<td style={{ whiteSpace: "nowrap" }}>{this.state.qtySelected} selected</td>
</tr>
</tfoot>
</table>
</div>
)
}
}
【问题讨论】:
标签: reactjs setstate react-lifecycle