Ant-design: ๊ฐ’์„ ๋™์  ์–‘์‹ ํ•ญ๋ชฉ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋“ฑ๋กํ•˜๊ธฐ ์ „์— ํ•„๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 01์›” 09์ผ  ยท  48์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ant-design/ant-design

๋ฒ„์ „

3.1.1

ํ™˜๊ฒฝ

MAC, ํฌ๋กฌ 63.0.3239.84(64), ๋ฐ 3.1.1

์žฌ์ƒ์‚ฐ ๋งํฌ

https://ant.design/components/form-cn/#components -form-demo-dynamic-form-item

์žฌํ˜„ ๋‹จ๊ณ„

๋™์  ์–‘์‹ ํ•ญ๋ชฉ ์„ค์ • ๊ฐ’,
` const formItems = keys.map((k, ์ธ๋ฑ์Šค) => {
๋ฐ˜ํ’ˆ (
{...formItemLayoutWithOutLabel}
ํ•„์ˆ˜={์ฐธ}
ํ‚ค={k}
>
{getFieldDecorator(์ตœ์†Œ๊ธˆ์•ก-${k}}, {
๊ทœ์น™: [{
ํ•„์ˆ˜: ์‚ฌ์‹ค,
๋ฉ”์‹œ์ง€: "่ฏท่พ“ๅ…ฅๅคงไบŽ0็š„ๅ€ผ",
}],
})(

)}

      { (keys.length > 1) ? (
        <Button
        type="danger"
        disabled={keys.length === 1}
        onClick={() => this.remove(k)}
        >ๅˆ ้™ค</Button>
      ) : null}
    </FormItem>
  );
});

Example this.props.form.setFields( { "minAmount-1" : {value : 111} } ); .

๋ฌด์—‡์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ’์„ ๊ณตํ†ต ํ•„๋“œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋“ฑ๋กํ•˜๊ธฐ ์ „์—๋Š” ํ•„๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


ํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋™์  ์–‘์‹ ํ•ญ๋ชฉ์œผ๋กœ ์„ค์ •ํ•  ๋•Œ.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

๋ชจ๋“  48 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @kerrzhao์ž…๋‹ˆ๋‹ค. ์ด ๋งํฌ https://u.ant.design/codesandbox-repro ๋ฅผ ๋ถ„๊ธฐํ•˜์—ฌ ์˜จ๋ผ์ธ ๋ณต์ œ๋ฅผ ์ œ๊ณต Need Reproduce ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ๋ฌธ์ œ๋Š” 7์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋‹ซํž™๋‹ˆ๋‹ค.

@yesmeck https://codesandbox.io/s/3rxj27q281 ๋‹ค์Œ์€ ์ฝ”๋“œ ๋ฐ๋ชจ์ž…๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋˜๋Š” ํšจ๊ณผ๋Š” ๋™์  ์ƒ์ž์—์„œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋“ฑ๋กํ•˜๊ธฐ ์ „์—๋Š” ํ•„๋“œ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ componentDidMount์— names_2 ๊ฐ’์„ ์„ค์ •ํ•˜๋ฉด ์•„์ง ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

@kerrzhao๋‹˜ , ์•ˆ๋…•ํ•˜์„ธ์š”, ์šฐ๋ฆฌ๋Š” GitHub ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„๊ทธ๋ฅผ ์ถ”์ ํ•˜๊ฑฐ๋‚˜ Ant Design์˜ ๊ณ„ํš์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉ ์งˆ๋ฌธ์„ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค . Stack Overflow ๋˜๋Š” Segment Fault ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ์‹œ๋„ํ•œ ๋‹ค์Œ antd ๋ฐ react ํƒœ๊ทธ๋ฅผ ์งˆ๋ฌธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

setFieldsValue ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ form ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ setFields @kerrzhao setFields ์‹œ๋„ ํ•˜์‹ญ์‹œ์˜ค.

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์˜์–ด๋กœ ๋ง ํ•ด์ฃผ์„ธ์š”.

@naefl ๊ฒฝ๊ณ ์—์„œ ๋งํ–ˆ๋“ฏ์ด ํ•„๋“œ๊ฐ€ ๋“ฑ๋ก๋˜๊ธฐ ์ „์—๋Š” setFieldsValue ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@naefl ๋Œ€์‹  'setFields'๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

@naefl ๋Œ€์‹  initialValue ์‚ฌ์šฉํ•˜๊ณ  ํ•„๋“œ ๊ฐ’์„ state example๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://codesandbox.io/s/3rxj27q281

์ด ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋” ๋ฐœ์ƒํ•˜์ง€๋งŒ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ React Native์— ์ฒ˜์Œ ๋งˆ์šดํŠธ๋  ๋•Œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ด์ƒํ•œ ์ ์€ setFieldValues ๋Š” ์–‘์‹์ด ๋ Œ๋”๋ง๋œ ํ›„์—์•ผ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

class Login extends React.Component {
  componentDidMount() {
    this.getStoredSettings()
  }
  getStoredSettings = async () => {
    const canLogin = await getItem('token')
    if (!canLogin) {
      const creds = await getItem('credentials')
      if (creds) {
        // update values with creds
        const { email, password } = JSON.parse(creds)
        try {
          this.props.form.setFieldsValue({
            email,
            password,
          })
        } catch (error) {
          console.log(error)
        }
      }
    }
  }

  render() {
    const { form, initialValues } = this.props
    const { email, password } = initialValues
    const { getFieldProps } = form
    return (
            <Form>
              <InputItem
                {...getFieldProps('email', {
               initialValue: email,
             })}
              />

              <InputItem
                {...getFieldProps('password', {
               initialValue: password,
             })}
                type='password'
              />
            </Form>          
    )
  }
}

const LoginForm = createForm()(Login)

const mapState = (state) => {
  return {
    initialValues: {
      email: __DEV__ ? DEFAULT_EMAIL : '',
      password: __DEV__ ? DEFAULT_PASSWORD : '',
    },
 }
}

export default connect(mapState)(LoginForm)

@gitdust ๋ณต์šฉ๋Ÿ‰ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@fenghuizhang ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•ฉ๋‹ˆ๋‹ค

์™œ ์•ˆ ์ข‹์•„?
const formData = { name: data.name, title: data.title, desc: data.desc, link: data.link, }; this.props.form.setFieldsValue(formData);
์•„๋งˆ๋„ ๊ท€ํ•˜์˜ ํ•„๋“œ์—๋Š” from์— ์—†๋Š” ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋“ฑ๋กํ•˜๊ธฐ ์ „์—๋Š” ํ•„๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์ด์œ ๋Š” ๋งˆ์นจ๋‚ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–‘์‹์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ•„๋“œ์— ๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!
@yanzishang ์—๊ฒŒ ๊ฐ์‚ฌ

๋Œ€๋ถ€๋ถ„์˜ ๋ ˆ์ด๋ธ”์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•„๋“œ๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ ๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ render()์—์„œ form.getFieldDecorator('fieldName', { initialValue: {} }) ์™€ ๊ฐ™์€ ์ฒซ ๋ฒˆ์งธ ํ•„๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฉ”์†Œ๋“œ์—์„œ setFieldValue๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ~

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@kerrzhao๊ฐ€ ๋งํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์ธ ํ•„๋“œ ๊ฐ’๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Example this.props.form.setFields( { "minAmount-1" : {value : 111} } ); .

ํ•„๋“œ๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ fields.hasOwnProperty(myField) ํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์–‘์‹์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ•„๋“œ์— ๊ฐ’์„ ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@guixuefeng101 ๋‚˜๋ž‘ ๋˜‘๊ฐ™์•„

์˜ค๋ฅ˜๋Š” ์‹ค์ œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"๊ฐ’๊ณผ ์—ฐ๊ฒฐ๋œ ํ•„๋“œ๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์ „์— ํ•„๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

"๋“ฑ๋ก"์€ ๋ฌธ์ œ๊ฐ€ Ant ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋ฉฐ ์ƒˆ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@joeheyming ํ•ด๋‹น ์ง€์นจ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@afc163 ์ด ๋ฉ”์‹œ์ง€์˜ ์œ„์น˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

setFields ๋˜๋Š” setFieldsValue ๋Œ€์‹  getFieldDecorator์˜ initialValue ์‚ฌ์šฉ

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ @gitdust ๋•๋ถ„์— ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์œผ๋กœ ๋‚ด ๋ฌธ์ œ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ดˆ๊ธฐ๊ฐ’์ด ๋‹ค๋ฅธ ์กฐ๊ฑด์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ๊ฐ’์„ ๋™์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ดˆ๊ธฐ ๊ฐ’ prop์„ ๋ฒ„๋ฆฌ๊ณ  ๋Œ€์‹  render ๋ฉ”์†Œ๋“œ ์ „์— form.setFields๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”!

๋จผ์ € ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–‘์‹์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{ _.isEmpty(gatherDetail) && this.props.location.state.type === 'ํŽธ์ง‘' ? : ์—†๋Š” }

์–‘์‹ ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” A์™€ B๋งŒ ์žˆ๊ณ  ์ง‘ํ•ฉ์˜ ๊ฐœ์ฒด์—๋Š” ์ถ”๊ฐ€ C๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•?

@kerrzhao setFieldsValue ์„ setState ์— ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

this.setState({ addOptionsList: newAddOptionsList }, () => { setFieldsValue({ [ ${๊ฐ’} ]: '' }); });

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

์‹์Šค์‹์Šค

form.getFieldDecorator('fieldName', { initialValue: your_value }) ์‹œ๋„

๋‹ค์Œ๊ณผ ๊ฐ™์ด v-decorator ํ˜•์‹์œผ๋กœ ํ•„๋“œ๋ฅผ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="description" hasFeedback>
    <a-textarea v-decorator="['description']"/>
</a-form-item>

๋ฌธ์„œ๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€์—์„œ ๋” ๋ช…ํ™•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

์—„์ฒญ๋‚œ

๋‚ด ํ•„๋“œ ์ด๋ฆ„์ด ์ž„์˜์˜ ๊ฐ’ 'astermihagauvlent'๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•„๋“œ ์ด๋ฆ„์„ 'keys'๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

initialValue๋Š” defaultValue์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฒซ ๋ฒˆ์งธ ๋ Œ๋”๋ง ํ›„์— ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ setFieldValue ๋˜๋Š” mapPropsToFields๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ์‹œ:
if(this.props.form.getFieldValue('๋ฒ„์ „')){
this.props.form.setFieldsValue({
๋ฒ„์ „: info.version,
});
}

๋‹น์‹ ์€ ๋‹น์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ํ•„๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. : )

๋Œ€๋ถ€๋ถ„์˜ ๋ ˆ์ด๋ธ”์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง„์‹ค

@ShMcK ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค, ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๏ผš๏ผ‰

getFieldsValue๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

setFieldsValue ์ „์— ํ•„๋“œ๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
```์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
const { ํ˜•์‹ } = this.props;
if (์ •์˜๋˜์ง€ ์•Š์Œ !== form.getFieldValue('foo')) {
form.setFieldsValue({
foo: 'hello world',
});
}
````

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

๊ณ ๋งˆ์›Œ

์ €์—๊ฒŒ ๋ฌธ์ œ๋Š” ์—ฌ๋Ÿฌ ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด๋กœ setFieldsValue๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐ˜๋ฉด ์ œ ์–‘์‹์—๋Š” ํ•„๋“œ๊ฐ€ ํ•˜๋‚˜๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

const  dataIWantToFillFormWith = { "test1": "dummy data", "test2": "more dummy data" }

Object.keys(form.getFieldsValue()).forEach(key => {
      const obj = {};
      obj[key] = dataIWantToFillFormWith[key] || null;
       setFieldsValue(obj)

ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–‘์‹์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

setFields ๋˜๋Š” setFieldsValue ๋Œ€์‹  getFieldDecorator์˜ initialValue ์‚ฌ์šฉ

getFieldDecorator์˜ initialValue๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ resetFields๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ๋ฌธ์ œ๋Š” ์—ฌ๋Ÿฌ ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด๋กœ setFieldsValue๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐ˜๋ฉด ์ œ ์–‘์‹์—๋Š” ํ•„๋“œ๊ฐ€ ํ•˜๋‚˜๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

const  dataIWantToFillFormWith = { "test1": "dummy data", "test2": "more dummy data" }

Object.keys(form.getFieldsValue()).forEach(key => {
      const obj = {};
      obj[key] = dataIWantToFillFormWith[key] || null;
       setFieldsValue(obj)

ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–‘์‹์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ useEffect ํ›„ํฌ๋ฅผ ์ž‘๋™ํ•˜๋Š” ์šฐ์ฃผ์—์„œ ๋ฐœ๊ฒฌ๋œ ์œ ์ผํ•œ ์†”๋ฃจ์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์–‘์‹์— ์„ค์ •ํ•œ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!

๋‹น์‹ ์„ ์‚ฌ๋ž‘ํ•ฉ๋‹ˆ๋‹ค

์ €์—๊ฒŒ๋Š” ์—ฌ๋Ÿฌ ํ˜•ํƒœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฐพ์€ ์˜ค๋ฅ˜๋Š” ์ž˜๋ชป๋œ ์–‘์‹ ์ธ์Šคํ„ด์Šค๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ•„๋“œ๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ์ง€๋งŒ setFieldsValue ๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์Šฌํ”„๋‹ค|_|

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰