Skip to content

Commit 041bdb6

Browse files
committed
fix: 修复 setNodes 无效
1 parent 6c6dca5 commit 041bdb6

File tree

6 files changed

+12
-7
lines changed

6 files changed

+12
-7
lines changed

packages/x-flow/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@xrenders/xflow",
3-
"version": "1.0.4-beta.5",
3+
"version": "1.0.4-beta.6",
44
"description": "一款功能强大、易用灵活的流程编辑器框架,帮助你轻松构建复杂的工作流和流程产品",
55
"keywords": [
66
"xflow"

packages/x-flow/src/XFlow.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,12 @@ const XFlow: FC<FlowProps> = memo(props => {
254254
const NodeEditorWrap = useMemo(() => {
255255
return (
256256
<NodeEditor
257+
ref={nodeEditorRef}
257258
data={activeNode?.values}
258259
onChange={handleNodeValueChange}
259260
nodeType={activeNode?._nodeType}
260261
id={activeNode?.id}
261-
ref={nodeEditorRef}
262+
262263
/>
263264
);
264265
}, [activeNode?.id]);

packages/x-flow/src/components/NodeEditor/index.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ interface INodeEditorProps {
1919
onChange: (data: any) => void;
2020
nodeType: string;
2121
id: string;
22+
ref?: React.Ref<any>; // 添加 ref 属性
2223
}
2324

24-
const NodeEditor: FC<INodeEditorProps> = forwardRef((props, ref) => {
25+
const NodeEditor: FC<INodeEditorProps> = forwardRef((props, ref: any) => {
2526
const { data, onChange, nodeType, id } = props;
2627
const form = useForm();
2728
// // 1.获取节点配置信息

packages/x-flow/src/hooks/useFlow.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export const useFlow = () => {
138138

139139
const runAutoLayout = useMemoizedFn(() => {
140140
const newNodes: any = autoLayoutNodes(storeApi.getState().nodes, storeApi.getState().edges, storeApi.getState().layout);
141-
setNodes(newNodes, false);
141+
setNodes(newNodes);
142142
});
143143

144144
return useMemo(

packages/x-flow/src/models/store.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ const createStore = (initProps?: Partial<FlowProps>) => {
8181
edges: addEdge(connection, get().edges),
8282
});
8383
},
84-
setNodes: (nodes, isTransform = true) => {
85-
set({ nodes: isTransform ? transformNodes(nodes) : nodes });
84+
setNodes: (nodes) => {
85+
set({ nodes: transformNodes(nodes) });
8686
},
8787
setEdges: edges => {
8888
set({ edges });
8989
},
9090
addNodes: (payload, isTransform = true) => {
91-
const newNodes = get().nodes.concat(isTransform ? transformNodes(Array.isArray(payload) ? payload : [payload]) : payload);
91+
const newNodes = get().nodes.concat(transformNodes(Array.isArray(payload) ? payload : [payload]));
9292
set({ nodes: newNodes });
9393
},
9494
addEdges: payload => {

packages/x-flow/src/utils/index.ts

+3
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ export const capitalize = (string: string) => {
172172
export const transformNodes = (nodes: any[]) => {
173173
return nodes?.map(item => {
174174
const { type, data, ...rest } = item;
175+
if (type === 'custom') {
176+
return item;
177+
}
175178

176179
if (type === 'Switch' || type === 'Parallel') {
177180
return {

0 commit comments

Comments
 (0)