From cc13ce4befe17aad6be93999cddd7e463de0007a Mon Sep 17 00:00:00 2001 From: zhangwenshuai Date: Mon, 27 Jul 2020 19:43:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=96=E8=BE=91=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/apolloTable/component/Cell.tsx | 7 ++----- .../component/base/edit/container/index.tsx | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/components/apolloTable/component/Cell.tsx b/components/apolloTable/component/Cell.tsx index bcc96c5..cd6d8b5 100644 --- a/components/apolloTable/component/Cell.tsx +++ b/components/apolloTable/component/Cell.tsx @@ -1,15 +1,12 @@ -import React, { useEffect, useMemo, useState, useRef } from 'react'; +import React, { useState, useRef } from 'react'; import { Checkbox, message, Popover } from 'antd'; import classNames from 'classnames'; import _ from 'lodash'; import { config } from './base/config'; -import { getEditComponent, getFormat, setFormat } from './base'; +import { getFormat, setFormat } from './base'; import s from './Cell.less'; import { CellProps, CellDataProps } from './interface'; import FormHelper from '../utils/formHelper'; -import firstIcon from '../assets/first.png'; -import secondIcon from '../assets/second.png'; -import thirdIcon from '../assets/third.png'; import expandIcon from '../assets/extend.png'; import { transferAttr } from './base/_utils/transferAttr'; import { emptyModel } from '@/submodule/components/apolloTable/component/base/_utils/setFormatter'; diff --git a/components/apolloTable/component/base/edit/container/index.tsx b/components/apolloTable/component/base/edit/container/index.tsx index 87bab57..94a0e10 100644 --- a/components/apolloTable/component/base/edit/container/index.tsx +++ b/components/apolloTable/component/base/edit/container/index.tsx @@ -8,6 +8,7 @@ interface Props { interface State { value: any; option: any; + propsValue: any; } export default function CellContainer

(Comp) { return class extends React.Component

{ @@ -15,11 +16,21 @@ export default function CellContainer

(Comp) { constructor(props) { super(props); this.state = { + propsValue: props.value, // 组件的原值 value: props.value, // 组件的值 option: undefined, // 选择项 }; this.container = React.createRef(); } + static getDerivedStateFromProps(nextProps: any, prevState: any) { + if (JSON.stringify(prevState.propsValue) !== JSON.stringify(nextProps.value)) { + return { + propsValue: nextProps.value, + value: nextProps.value, + }; + } + return null; + } componentDidMount(): void { document.addEventListener('click', this.onBlur, false); } -- 2.21.0