diff --git a/packages/react-moveable/src/react-moveable/InitialMoveable.tsx b/packages/react-moveable/src/react-moveable/InitialMoveable.tsx index ee5fbf80f..16a9a1f1e 100644 --- a/packages/react-moveable/src/react-moveable/InitialMoveable.tsx +++ b/packages/react-moveable/src/react-moveable/InitialMoveable.tsx @@ -113,7 +113,23 @@ export class InitialMoveable this.selectorMap = {}; this.refTargets = []; } - + /** + * If the element list corresponding to the selector among the targets is changed, it is updated. + * @method Moveable#updateSelectors + * @example + * import Moveable from "moveable"; + * + * const moveable = new Moveable(document.body, { + * target: ".target", + * }); + * + * moveable.updateSelectors(); + */ + public updateSelectors() { + this.selectorMap = {}; + this.refTargets = []; + this.forceUpdate(); + } /** * User changes target and waits for target to change. * @method Moveable#waitToChangeTarget diff --git a/packages/react-moveable/src/react-moveable/MoveableManager.tsx b/packages/react-moveable/src/react-moveable/MoveableManager.tsx index e67efa069..e7f81aed2 100644 --- a/packages/react-moveable/src/react-moveable/MoveableManager.tsx +++ b/packages/react-moveable/src/react-moveable/MoveableManager.tsx @@ -647,6 +647,7 @@ export default class MoveableManager this.updateRect(); }); } + public updateSelectors() {} protected unsetAbles() { this.targetAbles.forEach(able => { if (able.unset) { diff --git a/packages/react-moveable/src/react-moveable/types.ts b/packages/react-moveable/src/react-moveable/types.ts index b0f0939f0..acd2a3d6d 100644 --- a/packages/react-moveable/src/react-moveable/types.ts +++ b/packages/react-moveable/src/react-moveable/types.ts @@ -2721,6 +2721,7 @@ export interface MoveableInterface { setState(state: any, callback?: () => any): any; waitToChangeTarget(): Promise; forceUpdate(callback?: () => any): any; + updateSelectors(): void; } export interface ControlPose {