jQuery没有在React组件中执行

时间:2018-02-05 21:19:38

标签: javascript jquery reactjs

我正在尝试使用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);
  });

}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:-1)

您正在干扰React渲染。 React保留Virtual DOM并将此VDOM的差异呈现给文档DOM。您正在对React不知道的DOM应用更改,并且一旦重新呈现组件,它将覆盖这些更改。简而言之:除非你知道自己在做什么,否则不要在反应中使用jquery。您可以查看这些文档https://reactjs.org/docs/integrating-with-other-libraries.html以与外部库集成。