Reactjs 为什么要做出反应;注销不是一项功能;
由于某些原因,请参阅下面的代码,该代码将“注销不是一个函数”: logout.jsx:Reactjs 为什么要做出反应;注销不是一项功能;,reactjs,Reactjs,由于某些原因,请参阅下面的代码,该代码将“注销不是一个函数”: logout.jsx: import React from 'react'; import { Link } from 'react-router-dom'; class Logout extends React.Component { componentDidMount = () => { this.props.onLogoutUser(); } render() { retur
import React from 'react';
import { Link } from 'react-router-dom';
class Logout extends React.Component {
componentDidMount = () => {
this.props.onLogoutUser();
}
render() {
return (
<p>You're now logged out. Click <Link to='/login'>here</Link> to log back in.</p>
)
}
};
export default Logout;
我真的很困惑,为什么我会犯我不该犯的错误。有什么反馈吗
非常感谢。您不能直接访问组件安装挂钩内的道具。但是,您可以在渲染挂钩上访问它。要在componentDidMount钩子上使用它,可以将super与构造函数一起使用:
class Logout extends React.Component {
constructor(props) {
super(props)
现在,您可以像以前一样访问ComponentDidMountHook中的道具
另外,您正在使用arrow方法(公共类方法)来使用componentDidMount钩子,因此需要传递props参数并使用props
而不是this.props
。或者简单地使用:
componentDidMount() {
// this.props
您不能直接访问componentDidMount挂钩内的道具。但是,您可以在渲染挂钩上访问它。要在componentDidMount钩子上使用它,可以将super与构造函数一起使用:
class Logout extends React.Component {
constructor(props) {
super(props)
现在,您可以像以前一样访问ComponentDidMountHook中的道具
另外,您正在使用arrow方法(公共类方法)来使用componentDidMount钩子,因此需要传递props参数并使用props
而不是this.props
。或者简单地使用:
componentDidMount() {
// this.props
错误发生在哪里?你能发布堆栈跟踪吗?你忘了导入它。@Quentin我道歉。它实际上包含了我只是忘记在帖子中包含导入。@Dominic我添加了问题的回溯片段。请在应用程序组件中尝试
onLogoutUser={this.logoutUser}
而不是onLogoutUser={logoutUser}
发生错误的地方?你能发布堆栈跟踪吗?你忘了导入它。@Quentin我道歉。实际上已经包含了,我只是忘了在帖子中包含导入内容。@Dominic我添加了问题的回溯片段。请在应用程序组件中尝试onLogoutUser={this.logoutUser}
而不是onLogoutUser={logoutUser}