Git Product home page Git Product logo

Comments (3)

HugoFortunato avatar HugoFortunato commented on May 23, 2024

@antuneslv Hey Antunes!

There are some factors that catch my attention.

Did you declared the hook useField? const {..., defaultValue} = useField(...)

It's necessary than you use defaultValue in your input for your initialData found.

import { Form } from '@unform/web'


export default function MyForm() {
 const inputRef = useRef(null)
 const {fieldName, registerField, defaultValue, error} = useField(name)
 
 useEffect(() => {
   registerField({
    name: fieldName,
    ref: inputRef.current,
    path: 'value'
})
}, [fieldName, registerField])

  return (
    <Form initialData={{ email: '[email protected]' }}>
       <input name='email'  defaultValue={defaultValue}  ref={inputRef} {...rest}/>
    </Form>
  )
}

from unform.

HugoFortunato avatar HugoFortunato commented on May 23, 2024

@antuneslv For example, I tested a code creating a separate component Input and I use inside App. It works form me:

Input component:

import { useField } from "@unform/core";
import { useEffect, useRef } from "react";

export default function Input({ name }: any) {
  const inputRef = useRef(null);
  const { fieldName, registerField, defaultValue } = useField(name);

  useEffect(() => {
    registerField({
      name: fieldName,
      ref: inputRef.current,
      path: "value",
    });
  }, [fieldName, registerField]);

  return <input ref={inputRef} defaultValue={defaultValue} />;
}

App

import { useField } from "@unform/core";
import { Form } from "@unform/web";
import "./App.css";
import Input from "./Input";

function App() {
  function handleSubmit(data: any) {
    console.log(data);
  }

  return (
    <div className="App">
      <h1>Hello World</h1>

      <Form onSubmit={handleSubmit} initialData={{ email: "[email protected]" }}>
        <Input name="email" />
      </Form>
    </div>
  );
}

export default App;

Please, send me a feedback and I'll help you if you need. Bye!

from unform.

antuneslv avatar antuneslv commented on May 23, 2024

@HugoFortunato thanks for your reply.

I had to create an input component and use defaultValue to get it right. Using direct input without being a component wasn't working very well because of the properties of the input itself.

Now it's working, thanks for the help.

from unform.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.