我有一个教程中的以下代码
handleDelete = counterId => {
const counters = this.state.counters.filter(c => c.id !== counterId);
this.setState({ counters });
};
我正在创建一个新常量,该常量具有已删除counterId的现有数组。
但是我不明白“ c”在做什么,“ c.id”从何而来?
为什么它不是“ counterId”,即我绑定到该函数的属性。
谢谢
最佳答案
不是React JS。这是JavaScript的Array.prototype.filter()
。它表示计数器中的当前项目。如果函数的返回值为true,则将保留该元素。如果没有,它将被删除。
具有相同代码的示例:
const _counters = [{
id: 1,
name: "Praveen"
}, {
id: 2,
name: "Kumar"
}];
const handleDelete = counterId => {
const counters = _counters.filter(c => c.id !== counterId);
return counters;
};
// Let's try deleting the Kumar.
console.log(handleDelete(2));
在上面的代码中,我使用了
_counters
来显示状态变量。如果您想了解内部情况,请查看控制台:const _counters = [{
id: 1,
name: "Praveen"
}, {
id: 2,
name: "Kumar"
}];
const handleDelete = counterId => {
const counters = _counters.filter(c => {console.log(c);return c.id !== counterId});
return counters;
};
// Let's try deleting the Kumar.
console.log(handleDelete(2));