React报错 TypeError: Cannot read property ‘push‘ of undefined

在项目中,处理列表跳转详情时遇到了问题。初时代码如下:

import React, { Component } from 'react'
import { observer, inject } from 'mobx-react';
import { Wrapper, ModalWrapper, ScrollWrapper } from './style'
import ContentReport from '../contentListReport';

@inject('base','constructionReport')
@observer
class ImageProgressReportList extends Component {
    constructor(props) {
        super(props)
    }

    async handleRowEnterDetail(val) {
        localStorage.setItem("constructionReportStorage",JSON.stringify(val));
	this.props.history.push("/workZoneManage/details");
    }

    render() {
        return (
            <Wrapper className="page-container">
                ...
            </Wrapper>
        )
    }
}

export default ImageProgressReportList;

报错

先处理报错

import {withRouter} from 'react-router-dom'

...

export default withRouter (ImageProgressReportList);

再设置路由模块

完成页面跳转

import React, { Component } from 'react';
import { Switch, Route } from 'react-router-dom'
import loadable from "@loadable/component";
import KeepAlive from 'react-activation';

const ConstructionReportDetails = loadable(() => import('@v/workZoneManage/imageProgressReport/details'));

/** 模块路由 */
class WorkZoneManageRouter extends Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <Switch>
        <Route path="/workZoneManage/imageProgressReport/details"><KeepAlive name="/workZoneManage/imageProgressReport/details" title='施工报表'><ConstructionReportDetails /></KeepAlive></Route>
      </Switch>
    );
  }
}

export default WorkZoneManageRouter;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值