[英]Using variables in React setState to move an element from one array to another?
因此,我想浓缩2个将元素从一个数组移到另一个数组的函数。 被修改的数组需要是变量,因此我可以在任意两个数组上使用它。
这是我目前拥有的功能
clickedEventHandler = (index, target, origin) => {
let tempArry = [...origin];
console.log(tempArry);
let resultedArry = [...target];
resultedArry.push(tempArry[index]);
tempArry.splice((index, 1)[index]);
console.log(resultedArry);
console.log(tempArry);
this.setState({
addedArry: resultedArry,
userArry: tempArry
});
}
我正在尝试从原始数组中获取一个元素并将其移至目标数组。 这意味着我也需要从原点删除它,所以它是剪切的,而不是副本。
this.setState({
addedArry: resultedArry,
userArry: tempArry
});
我希望addArry
和userArry
是变量,因此我可以使用target和origin来确定发生了什么。
有人告诉我,我不应该在响应中直接改变数组,所以这是我尝试不改变的尝试。
我将如何去做呢?
这个概念是,一定不能直接操作Redux存储,因此在Redux reducer中,您可以将一个项目添加到存储数组中,例如
case ADD_ITEM :
return {
...state,
arr: state.arr.concat(action.newItem)
}
您可以从Redux存储中的数组中删除项目,例如
case DELETE_ITEM :
const newState = Object.assign([], state);
newState.splice(index, 1);
return newState;
我们还可以使用lodash库并实现
import _ from 'lodash';
case ADD_ITEM:
refArr = _.clone(state.arr);
refArr.push('data');
return Object.assign({}, state, {arr: refArr});
case DELETE_ITEM:
refArr = _.clone(state.arr);
refArr.splice(index, 1);
return Object.assign({}, state, {arr: refArr});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.