обновить контекст реакции на ввод пользователя - PullRequest
0 голосов
/ 09 марта 2020

У меня есть форма, в которой я использую входной хук для сбора имени пользователя. затем у меня есть динамический c контекст, который должен обновить пользовательский объект, ну, этого не происходит, потому что состояние ввода остается пустым, когда я смотрю его на инструменте dev, и у меня есть ошибка компиляции:

TypeError: Cannot destructure property 'user' of 'Object(...)(...)' as it is undefined.

UseInput:

export function useInput(initialValue){
  const [value, setValue] = useState("");
  const onChange= e =>setValue(e.target.value)
  const clear=()=>setValue("");
  const reset=()=>setValue(initialValue)
  return{
    value,
    setValue,
    onChange,
    clear,
    reset
  }
}

LoginForm:

 export default function LoginForm(){
    const {name,surname}=useInput("");
    const {user, setUser}= useContext(UserManager);
    const onSubmit =(name, surname)=>{
          setUser({name,surname})
    }

   return(
<div>
    <form>
        <input name="name" value={name} ></input>
        <input name="surname" value={surname}></input>
        <button onClick ={onSubmit}> submit</button>
    </form>
</div>
   )
}

контекст:

const UserContext= React.createContext({})
function UserManager({ children }) {
    const [user,setUser ]= useState({});
    return (
      <UserContext.Provider
        value={{user, setUser}}
      >
        {children}
      </UserContext.Provider>
    );
  }

приложение. js

return (
<UserManager>
<div className="App">
  <LoginForm user={user}/>
</UserManager>

); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...