TypeError:无法读取属性';推动';未定义ReactJS的定义
TypeError:无法读取属性';推动';未定义ReactJS的定义,reactjs,react-router,typeerror,Reactjs,React Router,Typeerror,这是handleSubmit函数您是这样包装组件的吗?如果不是这样包装的话 import { withRouter } from 'react-router'; class Specification extends Component {(...)} export default withRouter(Specification); 如果没有绑定函数,则使用arrow函数 handleSubmit = (e) => { e.preventDefault(); th
这是handleSubmit函数您是这样包装组件的吗?如果不是这样包装的话
import { withRouter } from 'react-router';
class Specification extends Component {(...)}
export default withRouter(Specification);
如果没有绑定函数,则使用arrow函数
handleSubmit = (e) => {
e.preventDefault();
this.props.history.push("/slider");
}
你是这样包装你的部件的吗?如果不是这样包装的话
import { withRouter } from 'react-router';
class Specification extends Component {(...)}
export default withRouter(Specification);
如果没有绑定函数,则使用arrow函数
handleSubmit = (e) => {
e.preventDefault();
this.props.history.push("/slider");
}
您可以按照以下步骤解决此问题
从“react router dom”导入{withRouter}代码>
onClick={this.handleSubmit.bind(this)}
使用路由器导出默认值(组件名称)代码>
您可以按照以下步骤解决此问题
从“react router dom”导入{withRouter}代码>
onClick={this.handleSubmit.bind(this)}
使用路由器导出默认值(组件名称)代码>
useHistory()
是一个钩子,只能在功能组件内部使用。如果您的组件不是由路由
渲染的。用路由器将其包裹起来,否则将其转换为功能组件。您是否绑定了handleSubmit
函数?useHistory()
是一个钩子,只能在功能组件内部使用。如果您的组件不是由路由
渲染的。用路由器把它包装起来,否则就把它转换成功能组件。你绑定了你的handleSubmit
函数吗?是的,我绑定了,如果我使用handleSubmit=(e)=>{e.preventDefault();const history=useHistory();this.props.history.push(“/slider”)}/code>它给我错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。发生这种情况可能是因为以下原因之一:@tejesh我看到您正在使用类组件,不要在这里使用钩子…This.props.history.push()将起作用。是的,但有了它,我得到了TypeError:无法读取undefinedNow的属性“push”。在工作时,我做了一些更改,如您所述,从“react router”导入{withRouter};和路由器(规格)代码>谢谢你,伙计!是的,如果我使用handleSubmit=(e)=>{e.preventDefault();const history=useHistory();this.props.history.push(“/slider”);}
它会给我错误:钩子调用无效。钩子只能在函数组件的主体内部调用。发生这种情况可能是因为以下原因之一:@tejesh我看到您正在使用类组件,不要在这里使用钩子…This.props.history.push()将起作用。是的,但有了它,我得到了TypeError:无法读取undefinedNow的属性“push”。在工作时,我做了一些更改,如您所述,从“react router”导入{withRouter};和路由器(规格)代码>谢谢你,伙计!
handleSubmit = (e) => {
e.preventDefault();
this.props.history.push("/slider");}