diff --git a/packages/g6/__tests__/bugs/element-edge-update-arrow.spec.ts b/packages/g6/__tests__/bugs/element-edge-update-arrow.spec.ts
new file mode 100644
index 00000000000..bc3389ffa06
--- /dev/null
+++ b/packages/g6/__tests__/bugs/element-edge-update-arrow.spec.ts
@@ -0,0 +1,38 @@
+import { createGraph } from '../utils';
+
+describe('bug: element-edge-update-arrow', () => {
+ it('should update edge arrow', async () => {
+ const graph = createGraph({
+ animation: false,
+ data: {
+ nodes: [
+ { id: 'node-0', style: { x: 100, y: 100 } },
+ { id: 'node-1', style: { x: 200, y: 100 } },
+ ],
+ edges: [
+ {
+ source: 'node-0',
+ target: 'node-1',
+ style: { startArrow: true, startArrowFill: 'red', endArrow: true, endArrowFill: 'green' },
+ },
+ ],
+ },
+ });
+
+ await graph.render();
+
+ await expect(graph).toMatchSnapshot(__filename);
+
+ graph.updateEdgeData([
+ {
+ source: 'node-0',
+ target: 'node-1',
+ style: { startArrowFill: 'purple', startArrowStroke: 'blue', endArrowFill: 'pink', endArrowStroke: 'yellow' },
+ },
+ ]);
+
+ await graph.render();
+
+ await expect(graph).toMatchSnapshot(__filename, 'update-arrow');
+ });
+});
diff --git a/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/default.svg b/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/default.svg
new file mode 100644
index 00000000000..b02855b16bb
--- /dev/null
+++ b/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/default.svg
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/update-arrow.svg b/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/update-arrow.svg
new file mode 100644
index 00000000000..ada7824d1e0
--- /dev/null
+++ b/packages/g6/__tests__/snapshots/__tests__/bugs/element-edge-update-arrow/update-arrow.svg
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/packages/g6/src/elements/edges/base-edge.ts b/packages/g6/src/elements/edges/base-edge.ts
index e16db954817..3a5469bf3c7 100644
--- a/packages/g6/src/elements/edges/base-edge.ts
+++ b/packages/g6/src/elements/edges/base-edge.ts
@@ -303,7 +303,7 @@ export abstract class BaseEdge extends BaseElement {
? (['markerStart', 'markerStartOffset', 'startArrowOffset'] as const)
: (['markerEnd', 'markerEndOffset', 'endArrowOffset'] as const);
- const arrow = keyShape.style[marker];
+ const arrow = keyShape.parsedStyle[marker];
// update
if (arrow) arrow.attr(arrowStyle);
// create