import React, { useState, useRef } from 'react'; import { Form, Col, Row, Button, ArrayField, Space } from '@douyinfe/semi-ui'; import { IconMinusCircle, IconPlusCircle } from '@douyinfe/semi-icons'; function ManualSetDemo() { const formRef = useRef(); const formInitValues = { data: [ { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi C2D', role: 'Designer' }, // { name: 'Semi DSM', role: 'Designer' }, ] }; const getFormApi = () => { const formApi = formRef.current.formApi; return formApi; }; const setValueAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi D2C-0', role: 'Engineer-0' }, { name: 'Semi C2D-1', role: 'Designer' }, ]); }, 200); }; const removeHeadAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi C2D', role: 'Designer' }, { name: 'Semi DSM', role: 'Designer' }, ]); }, 200); }; const removeTailAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi C2D', role: 'Designer' }, ]); }, 200); }; const removeMiddleAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi DSM', role: 'Designer' }, ]); }, 200); }; const removeAllAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', []); }, 200); }; const addHeadAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi DSM', role: 'Designer' }, { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi C2D', role: 'Designer' }, ]); }, 200); }; const addMiddleAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi DSM', role: 'Designer' }, { name: 'Semi C2D', role: 'Designer' }, ]); }, 200); }; const addTailAsync = () => { const formApi = getFormApi(); setTimeout(() => { formApi.setValue('data', [ { name: 'Semi D2C', role: 'Engineer' }, { name: 'Semi C2D', role: 'Designer' }, { name: 'Semi DSM', role: 'Designer' }, ]); }, 200); }; return (
{({ add, addWithInitValue, arrayFields }) => ( { arrayFields.map(({ field, key, remove }, i) => (
)) }
)}
); } ManualSetDemo.storyName = 'ArrayField-ManualSet Async'; export default ManualSetDemo;