[DevExtream] Using React Hook in DevExtream Components

삼겹살·2023년 7월 24일

DevExtream

목록 보기
1/2

When I define a configuration obj inside a func component, wrap the obj with a useMemo that provided by React.

Ex)

import React, { useState, useMemo } from 'react';
import Form, { Label, SimpleItem } from 'devextreme-react/form';
 
const data = { isAddressRequired: false, Address: '' };
 
export default function App() {
    const [visible, setVisible] = useState(false);
    const checkBoxOptions = useMemo(() => {
        return {
            text: "Display Address",
            onValueChanged: (e) => {
                setVisible(e.value);
            }
        }
    }, []);
    const addressOptions = useMemo(() => {
        return {
            placeholder: 'Enter your addresss',
            maxLength: 50
        }
    }, []);
 
    return (
        <Form formData={data}
            width={400}>
            <SimpleItem
                dataField="isAddressRequired"
                editorType="dxCheckBox"
                editorOptions={checkBoxOptions}>
                <Label visible={false} />
            </SimpleItem>
            <SimpleItem
                dataField="Address"
                editorType="dxTextBox"
                editorOptions={addressOptions}
                visible={visible}
            />
        </Form>
    );
}

이렇게 useMemo로 감싸놓으면 불필요한 렌더링 방지할 수 있음.

profile
PorkbellyWeb

0개의 댓글