我有一个使用react-dnd
. 有两列,从右侧列拖到左侧激活特定状态项。
在放置时,pushCard()
它被调用,它(顾名思义)将拖动的项目推入激活状态数组,即status_data
.
但问题是,status_data.push(itemToPush)
将新项目推到数组的末尾。我想将项目推到数组的顶部,即数组的索引 0。
status_data.unshift(itemToPush)
在这种情况下有效,但unshift
只更新后端中的数组state
,但不显示array
前端的更新。相反,它只会继续推动首先被拖动的相同元素。
pushCard
:
pushCard(item) {
const { status_data } = this.state.template;
const itemToPush = {
title : item.title || 'CUSTOM',
type_id : item.type_id,
color : item.color || '#000',
type: item.type,
require_notes: item.require_notes || false,
require_estimate: item.require_estimate || false
};
status_data.unshift(itemToPush);
this.setState(Object.assign(this.state.template, { status_data }));
}
renderActiveStatuses
renderActiveStatuses() {
let renderedResult = '';
if (this.state.template.status_data.length < 0) {
renderedResult = (<p>No status active in this template.</p>);
} else {
renderedResult = this.state.template.status_data.map((status, i) => {
return (
<Status deleteStatus={this.deleteStatus} handleStatusUpdate={this.onStatusUpdate} index={i} id={status.id} moveCard={this.moveCard} statusData={status} key={status.id} />
);
});
}
return renderedResult;
}
renderActiveStatuses
render
在组件的函数中调用。