簡體   English   中英

帶有 React 的樣式化組件 - 表單 onSubmit 不起作用

[英]Styled Components with React - form onSubmit not working

所以我想制作一個 Styled Components 表單組件,然后在更大的 React 組件中使用它。 問題是,當我想附加一個 onSubmit 時,它並沒有真正起作用。 我的樣式化組件表單組件:

const FormWrapper = styled.form`
    margin: 2vw 0 0;
    display:flex;
    flex-direction:column;
    align-items:center;
`;

我的反應父組件:

const Form = () => {

  const handleSubmit = (e)=>{
    e.preventDefault();
    console.log('submitted');
  };

  return(
      <FormWrapper>
          <Input name="username" placeholder="username"/>
          <ErrorMssg >This username doesn't exist!</ErrorMssg>
          <Submit value="register"/>
      </FormWrapper>
)};

我試過這樣的事情:

<FormWrapper onSubmit={handleSubmit}>

甚至在我的 Styled Components 組件中也是這樣:

const FormWrapper = styled.form.attrs({
  onSubmit:props=>props.onSubmit}`
})`
  margin: 2vw 0 0;
  display:flex;
  flex-direction:column;
  align-items:center;
`;

現在我讓它工作了:

const FormWrapper = styled.div`
  form{
    margin: 2vw 0 0;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
`;

const Form = () => {

  const handleSubmit = (e)=>{
    e.preventDefault();
    console.log('submitted');
  };

  return(
      <FormWrapper>
         <form autoComplete="off">
           <Input name="username" placeholder="username" autoComplete="off"/>
           <ErrorMssg >This username doesn't exist!</ErrorMssg>
           <Password name="password" placeholder="password" autoComplete="off"/>
           <ErrorMssg>The password is wrong!</ErrorMssg>
           <Submit value="log in"/>
         </form>
    </FormWrapper>
)};

嘗試這個

<Submit value="log in" onClick={handleSubmit}/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM