在我的App组件中,我调用 checkUserAuth()方法以检查用户是否登录,并根据此呈现不同的内容。当我通过componentDidMount()方法调用它时,它工作正常,但是如果我尝试通过另一种方法调用它,则它不起作用:
TypeError: this.checkUserAuth is not a function
在我的代码中:
class App extends React.Component {
constructor() {
super();
this.state = {
loggedIn: false
};
this.checkUserAuth = this.checkUserAuth.bind(this);
}
componentDidMount(){
this.checkUserAuth(); // here this method can be called
}
checkUserAuth(){
const loggedUser = AuthService.isAuthenticated();
if(loggedUser){
store.dispatch(actions.loginSuccess());
this.setState({loggedIn: true});
}
}
logoutUser(){
store.dispatch(actions.logout());
this.checkUserAuth(); // here it return errors
}
我该如何解决?
答案 0 :(得分:3)
将其放入构造函数中:
this.logoutUser = this.logoutUser.bind(this);
此外,如果发现总是绑定内容很繁琐,请考虑使用自动绑定库。我使用react-autobind