我正在尝试使用jQuery删除并在我的React登录组件中添加一个类。当代码执行时,似乎只是跳过了jQuery。我没有收到错误消息,jQuery函数也没有运行。这是我的JQuery在我的React组件方法中的样子:
handleLogin(e) {
e.preventDefault();
const email = this.refs.loginEmail.value;
const password = this.refs.loginPassword.value;
auth.signInWithEmailAndPassword(email, password)
.then(() => {
Store.dispatch({type: 'LOG_IN', payload: true});
history.push('/');
})
.catch(error => {
$('.login-box').addClass('error-shake');
$('.login-box').delay(200).removeClass('error-shake');
throw new Error(error.code + ': ' + error.message);
});
}
任何帮助将不胜感激!
答案 0 :(得分:-1)
您正在干扰React渲染。 React保留Virtual DOM并将此VDOM的差异呈现给文档DOM。您正在对React不知道的DOM应用更改,并且一旦重新呈现组件,它将覆盖这些更改。简而言之:除非你知道自己在做什么,否则不要在反应中使用jquery。您可以查看这些文档https://reactjs.org/docs/integrating-with-other-libraries.html以与外部库集成。