Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未定义的TypeError:无法读取未定义的属性“push”(React read )

未定义的TypeError:无法读取未定义的属性“push”(React read )
EN

Stack Overflow用户
提问于 2017-05-16 11:05:56
回答 6查看 126.5K关注 0票数 61

我有一个带有旋转幻灯片的仪表板,每个在Bldgs中都有一个相应的选项卡。Dashboard.jsBldgs.js都是我App.js的孩子。

当用户单击Dashboard.js中的特定幻灯片Dashboard.js时,Dashboard需要告诉App.js,以便App可以告诉Bldgs.js在路由到Bldgs时显示选项卡A

我相信,我正在将正确的索引值从Dashboard传递到App,向下传递到Bldgs。但是,在我的App.js文件中抛出了一个错误,声明:

Uncaught TypeError: Cannot read property 'push' of undefined

在开始将handleClick()函数传递给Dashboard组件之前,我的代码运行良好。

Index.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';
import injectTapEventPlugin from 'react-tap-event-plugin';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import { BrowserRouter as Router } from 'react-router-dom';
import { hashHistory } from 'react-router';

// Needed for onTouchTap
// http://stackoverflow.com/a/34015469/988941
injectTapEventPlugin();

ReactDOM.render(
  <MuiThemeProvider>
    <Router history={hashHistory}>
      <App />
    </Router>
  </MuiThemeProvider>,
  document.getElementById('root')
);

App.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import { Route } from 'react-router-dom';
import Dashboard from './Dashboard';
import Bldgs from './Bldgs';

var selectedTab;

class App extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    selectedTab = 0;
  }

  handleClick(value) {
    selectedTab = value;
    // console.log(selectedTab);
    this.props.history.push('/Bldgs');
    // console.log(this.props);
  }

  render() {
    var _this = this;

    return (
      <div>
        <Route exact path="/" render={(props) => <Dashboard {...props} handleClick={_this.handleClick} />} />
        <Route path="/Bldgs" component={Bldgs} curTab={selectedTab} />
      </div>
    );
  }
}

export default App;

Dashboard.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Component } from 'react';
import './Dashboard.css';
import { AutoRotatingCarousel, Slide } from 'material-auto-rotating-carousel';
...

var curIndex;

class Dashboard extends Component {
  constructor(props) {
    super(props);
    this.handleEnter = this.handleEnter.bind(this);
    this.handleChange = this.handleChange.bind(this);
    curIndex = 0;
  }

  handleEnter(e) {
    // console.log(curIndex);
    this.props.handleClick(curIndex);
  }

  handleChange(value) {
    // console.log(value);
    curIndex = value;
  }

...
}

export default Dashboard;

Bldgs.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
var curTab;

class Bldgs extends Component {
  constructor(props) {
    super(props);
    this.handleChange = this.handleChange.bind(this);
    this.goHome = this.goHome.bind(this);
    curTab = 0;
  }

  handleChange(value) {
    this.setState({'selectedTab': value});
    console.log(this.state);
  }

  goHome(e) {
    this.props.history.push('/');
  }

...
}

export default Bldgs;
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-16 11:15:30

为了在App组件中使用App,将其与withRouter一起使用。只有当组件没有接收到withRouter时,才需要使用Router props

当您的组件是由路由器或呈现的组件的嵌套子组件时,您还没有将路由器道具传递给它--当组件根本没有链接到路由器,并且呈现为与路由独立的组件时,可能会发生这种情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import { Route , withRouter} from 'react-router-dom';
import Dashboard from './Dashboard';
import Bldgs from './Bldgs';

var selectedTab;

class App extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    selectedTab = 0;
  }

  handleClick(value) {
    selectedTab = value;
    // console.log(selectedTab);
    this.props.history.push('/Bldgs');
    // console.log(this.props);
  }

  render() {
    var _this = this;

    return (
      <div>
        <Route exact path="/" render={(props) => <Dashboard {...props} handleClick={_this.handleClick} />} />
        <Route path="/Bldgs" component={Bldgs} curTab={selectedTab} />
      </div>
    );
  }
}

export default withRouter(App);

文档 on withRouter

票数 113
EN

Stack Overflow用户

发布于 2017-09-07 05:39:13

for function路由器V4将该函数更改为

onClick={this.fun.bind(this)}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fun() {
  this.props.history.push("/Home");
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { withRouter } from 'react-router-dom';

稍后以下列方式出口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default withRouter (comp_name);
票数 26
EN

Stack Overflow用户

发布于 2020-10-30 02:52:53

在使用功能组件时,我们可以使用useHistory()对历史进行推送方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { useHistory } from "react-router-dom";

然后,在函数中,我们必须分配useHistory()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  let history = useHistory();

现在我们可以使用history.push重新定位到所需的页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
history.push('/asdfg')
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44009618

复制
相关文章
Vue.js中的[system]TypeError: Cannot read property ‘push‘ of undefined
我在uni-app中写一下代码时出现问题[system]TypeError: Cannot read property 'push' of undefined
叶茂林
2023/08/14
2040
Java-方法重载时 调用未定义的对象属性
public class TestWayReload { int id; String name; String pwd; public TestWayReload(){ System.out.println(“Hellow World!”); System.out.println("################"); }
Fisherman渔夫
2019/07/30
5.6K0
C/C++未定义行为
下面是一段代码,这段代码中有标准未定义的行为。代码如下: #include<iostream> using namespace std; int main() { int j = 0;
zy010101
2020/04/16
3.7K0
vue在IE下无法正常工作,Promise未定义?
用vue写了一个日历组件,在Firefox、Edge、Chrome以及360等浏览器极速模式中运行一切正常,如图:
Yiiven
2022/12/15
4.2K0
vue在IE下无法正常工作,Promise未定义?
来自1000多个项目的10大JavaScript错误浅析
出于可读性方面的考虑,每个错误的描述经过精简。 1.Uncaught TypeError: Cannot read property 如果你是一名JavaScript开发者,对这个错误可能已经熟视无睹。在Chrome里读取未定义对象的属性或调用未定义对象的方法时就会发生这个错误,在Chrome开发者控制台可以很容易地重现这个错误。 发生这个错误的原因有很多,其中最为常见的是,在渲染UI组件时没有正确初始化状态。我们通过一个真实的例子来看看这个错误是怎么发生的。我们选择React作为示例,不过在其
用户1263954
2018/03/20
6.2K0
来自1000多个项目的10大JavaScript错误浅析
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。 对于这些错误发生的次数,我们是通过收集的数据统计得出的
葡萄城控件
2018/03/27
8.4K0
1000多个项目中的十大JavaScript错误以及如何避免
10 种 JavaScript 最常见的错误
查看了数千个项目后,发现了 10 个最常见的 JavaScript 错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。
小生方勤
2019/06/26
8.6K0
10 种 JavaScript 最常见的错误
ubuntu gcc编译时对’xxxx’未定义的引用问题
http://www.cnblogs.com/oloroso/p/4688426.html
bear_fish
2018/09/19
8.2K0
[Error] invalid use of incomplete type 使用了未定义的类型
今天在写奥特曼打大怪兽的时候,发现一个奇怪的问题,我定义了两个基类Ultraman和Monster,一个Monster的子类Boss,然后两个基类是有相互勾结的地方,它们都或多或少的使用了对方的类型进行定义自己,然后我在第一个类实现前面进行了另一个类的声明:
叶茂林
2023/07/30
5080
[Error] invalid use of incomplete type 使用了未定义的类型
C 和 C++ 中的未定义行为
theme: channing-cyan highlight: a11y-dark
鲸落c
2022/11/14
4.4K0
10 种最常见的 Javascript 错误
英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript-errors/ 为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollb
前端教程
2018/03/05
6.9K0
10 种最常见的 Javascript 错误
1000个项目中前10名的JavaScript错误介绍
为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollbar 会收集每个项目的所有错误,并总结每个错误发生的次数。我们通过根据 “指纹”(rollbar 用到的一种算法,详见:https://rollbar.com/docs/gr
程序你好
2018/07/20
6.2K0
Oracle中日期字段未定义日期类型的案例一则
可能很多开发规范中都写了日期类型的字段,应该就是用标准的日期类型定义,不要用字符串、数值型等替代,相关历史文章,如下所示,
bisal
2022/05/14
3.4K0
c++使用了未定义类型_c++如何新建
第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。
全栈程序员站长
2022/11/09
2.7K0
解决调用未定义 swoole_async_readfile函数问题
https://github.com/swoole/swoole-src/issues/2439
全栈程序员站长
2022/07/11
4K0
解决调用未定义 swoole_async_readfile函数问题
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。
一墨编程学习
2018/10/20
6.2K0
实现nest中未定义参数的入参校验
当我们在dto层定义好参数字段后,客户端在调用时传入了未定义的字段,此时我们需要报错告知客户端这个字段不存在,在nest中默认不会报错,本文将分享这个问题的解决方案,欢迎各位感兴趣的开发者阅读本文。
神奇的程序员
2022/04/10
3.5K0
实现nest中未定义参数的入参校验
React踩坑日记:React启动后报错TypeError: Cannot read properties of undefined (reading ‘forEach‘)
前言今天创建新项目运行后又出现这个问题了,之前也出现过,觉得是很正常的情况,不过我今天发现还有许多朋友不知道这个问题的解决方法,特地来记录一下。
Healers
2022/04/24
1.6K0
React踩坑日记:React启动后报错TypeError: Cannot read properties of undefined (reading ‘forEach‘)
IE11出现"__doPostBack”未定义
  系统做迁移,在新服务器IIS上部署,部署后的系统在IE8和其他浏览器上显示正常,
_一级菜鸟
2020/07/22
2.6K0
点击加载更多

相似问题

React: TypeError无法读取未定义的属性(读取“push”)

25

TypeError:无法读取React中未定义的属性(读取“push”)

10

React + Redux: TypeError:无法读取未定义的属性'push‘

21

无法读取未定义TypeError的属性“push”:无法读取未定义错误的属性“push”

28

类型记录,React: TypeError:无法读取未定义的属性“push”

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文