;
所以在点击后需要调用关闭。
-同时上面的left和top是右键的位置。
\ No newline at end of file
+同时上面的left和top是右键的位置。
+
+另外,你还需要在组件内增加个强刷赋值给forceUpdate,用于在组件移动时进行跟随。
\ No newline at end of file
diff --git a/packages/dooringx-example/src/layouts/index.tsx b/packages/dooringx-example/src/layouts/index.tsx
index 9fd68e9..2d4694d 100644
--- a/packages/dooringx-example/src/layouts/index.tsx
+++ b/packages/dooringx-example/src/layouts/index.tsx
@@ -2,17 +2,16 @@
* @Author: yehuozhili
* @Date: 2021-07-07 14:51:17
* @LastEditors: yehuozhili
- * @LastEditTime: 2021-07-10 19:07:10
+ * @LastEditTime: 2021-07-13 19:55:15
* @FilePath: \dooringx\packages\dooringx-example\src\layouts\index.tsx
*/
import { Button } from 'antd';
-import { UserConfig } from 'dooringx-lib/dist';
+import { UserConfig } from 'dooringx-lib';
import 'dooringx-lib/dist/dooringx-lib.esm.css';
-import { createContext } from 'react';
+import { createContext, useState } from 'react';
import { IRouteComponentProps } from 'umi';
import plugin from '../plugin';
import 'antd/dist/antd.css';
-import 'dooringx-lib/dist/dooringx-lib.esm';
import '../global.less';
import 'animate.css';
@@ -26,6 +25,10 @@ const ContextMenu = () => {
const handleclick = () => {
unmountContextMenu();
};
+ const forceUpdate = useState(0)[1];
+ contextMenuState.forceUpdate = () => {
+ forceUpdate((pre) => pre + 1);
+ };
return (
{
}
};
+const directionArr: directionType[] = [
+ 'top',
+ 'topleft',
+ 'left',
+ 'topright',
+ 'bottomleft',
+ 'bottom',
+ 'right',
+ 'bottomright',
+];
+
export function BlockResizer(props: BlockResizerProps) {
const render = useMemo(() => {
if (props.data.focus && props.data.resize) {
return (
<>
-
{
- onMouseDown(e, 'top', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'topleft', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'left', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'topright', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'bottomleft', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'bottom', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'right', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
-
{
- onMouseDown(e, 'bottomright', props.data, props.rect, props.config);
- }}
- onMouseUp={() => {
- resizerMouseUp(props.config);
- }}
- >
+ {directionArr.map((v) => {
+ return (
+
{
+ onMouseDown(e, v, props.data, props.rect, props.config);
+ }}
+ onMouseUp={() => {
+ resizerMouseUp(props.config);
+ }}
+ >
+ );
+ })}
>
);
} else {
return null;
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [props.data.focus, props.data.resize]);
+ }, [props.config, props.data, props.rect]);
return <>{render}>;
}
diff --git a/yarn.lock b/yarn.lock
index 590c4a2..48a74fa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4692,7 +4692,7 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5, classnames@^2.2.6:
+classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==