Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:从redux容器调用函数时,此.props.***不是React redux应用程序中的函数_Javascript_Reactjs_Redux_Containers - Fatal编程技术网

Javascript 未捕获类型错误:从redux容器调用函数时,此.props.***不是React redux应用程序中的函数

Javascript 未捕获类型错误:从redux容器调用函数时,此.props.***不是React redux应用程序中的函数,javascript,reactjs,redux,containers,Javascript,Reactjs,Redux,Containers,我有一个react应用程序实现了redux,我得到了这个错误 未捕获类型错误:this.props.updateDimensions不是函数 执行App.js时:- class App extends Component { componentDidMount() { this.updateWindowDimensions(); window.addEventListener("resize", this.updateWindowDimensions); } com

我有一个react应用程序实现了redux,我得到了这个错误

未捕获类型错误:this.props.updateDimensions不是函数

执行App.js时:-

class App extends Component {
  componentDidMount() {
    this.updateWindowDimensions();
    window.addEventListener("resize", this.updateWindowDimensions);
  }

  componentWillUnmount() {
    window.removeEventListener("resize", this.updateWindowDimensions);
  }

  updateWindowDimensions() {
    this.props.updateDimensions(window.innerWidth, window.innerHeight);
  }

  render() { .....
AppContainer.js文件:-

import { connect } from "react-redux";
import App from "./App";
import { UPDATE_DIMENSIONS } from "../actions";

const mapStateToProps = (state, ownProps) => {
  return {
    screenWidth: state.screenSize.screenWidth,
    screenHeight: state.screenSize.screenHeight
  };
};

const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    updateDimensions: (screenWidth, screenHeight) => {
      dispatch({ type: UPDATE_DIMENSIONS, screenWidth, screenHeight });
    }
  };
};

const AppContainer = connect(mapStateToProps, mapDispatchToProps)(App);

export default AppContainer;
这是index.js,在这里调用AppContainer:-

import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import { createStore } from "redux";
import rootReducer from "./reducers";
import { BrowserRouter as Router, Route } from "react-router-dom";
import "./index.css";
import AppContainer from "./App";
import registerServiceWorker from "./registerServiceWorker";
import "semantic-ui-css/semantic.min.css";

let store = createStore(rootReducer);

ReactDOM.render(
  <Provider store={store}>
    <Router>
      <Route component={AppContainer} />
    </Router>
  </Provider>,
  document.getElementById("root")
);
registerServiceWorker();
从“React”导入React;
从“react dom”导入react dom;
从“react redux”导入{Provider};
从“redux”导入{createStore};
从“/reducers”导入rootReducer;
从“react Router dom”导入{BrowserRouter as Router,Route};
导入“/index.css”;
从“/App”导入AppContainer;
从“/registerServiceWorker”导入registerServiceWorker;
导入“语义ui css/semantic.min.css”;
let store=createStore(rootReducer);
ReactDOM.render(
,
document.getElementById(“根”)
);
registerServiceWorker();
我相信这是一个常见的错误,我已经到处查看了,代码中似乎没有明显的缺陷。不知道问题出在哪里

我想你忘了:

constructor(props) {
   super(props);
}
我明白了

在index.js中:-

从“/App”导入AppContainer

应该是

从“/AppContainer”导入AppContainer

啊!如果React抛出一个错误,说“AppContainer not found in./App.js”,那么这会容易得多

更新:-

我还有另一个错误,通过添加以下内容进行了修复:-

  constructor(props) {
    super(props);
    this.updateWindowDimensions = this.updateWindowDimensions.bind(this);
  }

不必要的家长电话constructor@Vivek,谢谢,我克服了最初遇到的错误,但之后又出现了一个错误。添加构造函数修复了这个问题。@rawcode,如果它对您有帮助,请您投票好吗?如果答案是向上投票的,也接受答案,但这不是初始问题的答案。此构造函数在此处不提供任何值。如果打开开发人员控制台,您会看到react关于
无用构造函数的警告。
“如果react抛出一个错误,说“AppContainer not found in./App.js”,这会容易得多——您可能想尝试一下TypeScript,它可以在编译过程中检测这些恼人的错误。您可以使用箭头函数而不是绑定