我有一个使用React-mosaic-component进行前端瓷砖开发的react项目。我正在创建一个在dashbaord中呈现的新面板。然后,我想立即调用setlayout,让我在不同的图块之间移动。我有setLayout附加到组件。我需要将currentNode作为参数传递,并且它无法捕获该节点。谁能帮我弄清楚如何获取当前节点。
代码如下:
export const UserWidgetTile: React.FC<WidgetProps> = ({ userWidget, dashboardService}) => {
const setLayout = useCallback((currentNode: DashboardNode | null) => dashboardService.setLayout(currentNode), []);
let dragStart = (e) => {
let transferringData = e.dataTransfer.setData("text", e.target.id);
let collectedData = e.dataTransfer.getData("text")
setTimeout(() => {
mainStore.closeWidgetToolbar()
let userWidget = dashboardStore.userDashboards().value.widgets[collectedData];
dashboardService.addWidget(userWidget);
setLayout();
}, 200)
}
return (
<div className={styles.tile} id={userWidget.id} onClick={() => dashboardService.addWidget(userWidget)}>
<img className={styles.tileIcon} id={userWidget.id} src={userWidget.widget.images.smallUrl} draggable={true} onDragOver={(e) => e.preventDefault()} onDragStart={dragStart}/>
<span className={styles.tileTitle} id={userWidget.id} draggable={true} onDragOver={(e) => e.preventDefault()} onDragStart={dragStart} >{userWidget.widget.title}</span>
</div>
);
};
我只需要找到一种方法来获取当前节点并将其传递到setLayout中。