我想抛弃lodash并尽可能多地使用es6,其他方面做得很好,特别是我正在使用数组辅助方法,如map和spread真的有帮助,但我无法重构代码
onChangeCheckbox(e) {
const { input } = this.props;
const arr = input[ e.target.name ] || [];
const checked = e.target.checked;
if (checked) {
arr.push(e.target.value);
}
else {
pull(arr, e.target.value);
}
this.props.onChange( e.target.name, arr );
}
对我来说没关系,但是其他成员抱怨它难以阅读,任何线索如何让它变得更好?
答案 0 :(得分:1)
您可以过滤数组,并将结果分配回arr:
arr = arr.filter((value) => value !== e.target.value)
反应最好更换,而不是变异,因为变化检测进行浅层比较,所以我也会替换Array#push
。
onChangeCheckbox(e) {
const { input } = this.props;
let arr = input[ e.target.name ] || [];
const checked = e.target.checked;
if (checked) {
arr = [...arr, e.target.value];
}
else {
arr = arr.filter((value) => value !== e.target.value)
}
this.props.onChange( e.target.name, arr );
}