import React, { useState, useLayoutEffect, Component } from 'react'; import { storiesOf } from '@storybook/react'; import { Button, Modal, TreeSelect, Row, Col, Avatar, Select as BasicSelect, Form, useFormState, useFormApi, useFieldApi, useFieldState, withFormState, withFormApi, withField, ArrayField, } from '../../../index'; import { format } from 'date-fns'; import { ComponentUsingFormState } from '../Hook/hookDemo'; const { Input, Select, DatePicker, Switch, Slider, CheckboxGroup, Checkbox, RadioGroup, Radio, TimePicker, InputNumber, InputGroup } = Form; class NestArrayField extends React.Component { constructor() { super(); this.state = { data: { group: [ { name: '0', // name: '0', items: [ { itemName: 'form', type: '0-1' } ], }, // { // name: '1', items: [ { itemName: 'form', type: '1-1' } ], // } ], }, flag: true }; this.getFormApi = this.getFormApi.bind(this); this.change = this.change.bind(this); } change = () => { let number = this.formApi.getValue('number'); let newData = { group: [ { name: Math.random().toString().slice(0, 3), items: [ { itemName: Math.random(), type: '0-1' } ] }, // { name: Math.random(), items: [ { itemName: Math.random(), type: '0-1' } ] }, ] }; this.formApi.setValues(newData, { isOverride: true }); } getFormApi(formApi) { this.formApi = formApi; } render() { return (
console.log(values)} getFormApi={this.getFormApi} initValues={this.state.data} > {({ add, arrayFields, addWithInitValue }) => ( { arrayFields.map(({ field, key, remove }, i) => (
{({ add, arrayFields, addWithInitValue }) => (
{ arrayFields.map(({ field, key, remove }, i) => (
)) }
)}
)) }
)}
); } } class Child extends React.Component { constructor(props) { super(props); this.state = { ts: format(new Date(), 'yyyy-MM-dd HH:mm:ss') }; } render() { return
{this.state.ts}
; } } class Parent extends React.Component { constructor(props) { super(props); this.click = this.click.bind(this); } click() { this.forceUpdate(); } render() { return
{[1, 2, 3].map(i => (
))}
; } } export { NestArrayField, Parent };