@@ -4,6 +4,7 @@ import React, {
4
4
useContext ,
5
5
useEffect ,
6
6
useState ,
7
+ useMemo ,
7
8
} from 'react'
8
9
import classNames from 'classnames'
9
10
import { View } from '@tarojs/components'
@@ -27,19 +28,16 @@ export const Col: FunctionComponent<Partial<TaroColProps>> = (props) => {
27
28
...defaultProps ,
28
29
...props ,
29
30
}
30
- const [ colName , setColName ] = useState ( '' )
31
- const [ colStyle , setColStyle ] = useState ( { } )
32
31
const { gutter } = useContext ( DataContext ) as any
33
32
34
- const classs = ( ) => {
35
- // 定义col的class类
33
+ const classs = useMemo ( ( ) => {
36
34
const prefixCls = 'nut-col'
37
35
return `${ prefixCls } ${ prefixCls } -${ span } ${
38
36
gutter ? `${ prefixCls } -gutter` : ''
39
37
} ${ prefixCls } -offset-${ offset } `
40
- }
41
- const getStyle = ( ) => {
42
- // 定义col的style类
38
+ } , [ offset , span , gutter ] )
39
+
40
+ const getStyle = useMemo ( ( ) => {
43
41
const style : CSSProperties = { }
44
42
if ( ! isFirst ) {
45
43
style . paddingLeft = pxTransform ( ( gutter as number ) / 2 )
@@ -48,11 +46,15 @@ export const Col: FunctionComponent<Partial<TaroColProps>> = (props) => {
48
46
style . paddingRight = pxTransform ( ( gutter as number ) / 2 )
49
47
}
50
48
return style
51
- }
49
+ } , [ isFirst , isLast , gutter ] )
50
+
51
+ const [ colName , setColName ] = useState ( classs )
52
+ const [ colStyle , setColStyle ] = useState ( getStyle )
53
+
52
54
useEffect ( ( ) => {
53
55
setColName ( classs )
54
56
setColStyle ( getStyle )
55
- } , [ span , offset , gutter ] )
57
+ } , [ classs , getStyle ] )
56
58
57
59
return (
58
60
< View
0 commit comments