我认为我拼错了一个道具,但不确定[closed]

问题描述 投票:0回答:1

因此,基本上,我尝试在我的项目中实现React Hooks,但这给了我这个错误。也许我是瞎子却看不到问题,我想我拼错了什么。但是也许我传错了道具,我现在有点困惑。

这是我的星座成分:

   const SignIn = ({ emailSignInStart, googleSignInStart }) => {
  const [userCredentials, setCredentials] = useState({
    email: '',
    passowrd: ''
  });
  const { email, password } = userCredentials;

  const handleSubmit = async e => {
    e.preventDefault();

    emailSignInStart(email, password);
  };

  const handleChange = e => {
    const { value, name } = e.target;
    setCredentials({ ...userCredentials, [name]: value });
  };

  return (
    <div className='sign-in'>
      <h2>I already have an account</h2>
      <span>Sign in with your email and passowrd</span>

      <form onSubmit={handleSubmit}>
        <FormInput
          name='email'
          type='email'
          value={email}
          required
          handleChange={handleChange}
          label='email'
        />

        <FormInput
          name='password'
          type='password'
          value={password}
          required
          handleChange={handleChange}
          label='password'
        />
        <div className='buttons'>
          <CustomButton type='submit'>Sign in</CustomButton>
          <CustomButton
            type='button'
            onClick={googleSignInStart}
            isGoogleSignIn
          >
            Sign in with Google
          </CustomButton>
        </div>
      </form>
    </div>
  );
};

const mapDispatchToProps = dispatch => ({
  googleSignInStart: () => dispatch(googleSignInStart()),
  emailSignInStart: (email, passowrd) =>
    dispatch(emailSignInStart({ email, passowrd }))
});

export default connect(null, mapDispatchToProps)(SignIn);

这是我的表单输入组件:

  const FormInput = ({ handleChange, label, ...props }) => (
  <div className='group'>
    <input className='form-input' onChange={handleChange} {...props}></input>
    {label ? (
      <label
        className={`${props.value.length ? 'shrink' : ''} form-input-label`}
      >
        {label}
      </label>
    ) : null}
  </div>
);

export default FormInput;

有人可以帮我解决这个问题吗?

reactjs react-hooks
1个回答
4
投票

在线:

const [userCredentials, setCredentials] = useState({ email: '', passowrd: '' }); 

passowrd应为password。否则,userCredentials.password将返回undefined

© www.soinside.com 2019 - 2024. All rights reserved.