在我的redux js应用程序(google appengine后端)中,当打开包含根组件的页面时,我会收到以下警告和错误消息。
警告:失败的proType:无效的propstore
类型的函数
提供给提供者
,预期的对象
。检查Root
的渲染方法。bundle.js:6169
警告:propType失败:提供给DevToolsRapper
的函数
类型的存储
无效,应为对象
。检查Root
的渲染方法。捆js:6169
警告:失败的上下文类型:类型函数
的无效子上下文store
提供给供应商
,预期的对象
。检查Root
的渲染方法。bundle.js:6169
警告:失败的上下文类型:提供给Connect(AsyncApp)
的函数类型的
存储
无效,应为对象
。检查提供程序的渲染方法。
Uncaught TypeError: store.getState is not a function
这就是react redux的lib/components/createConnect中发生错误的地方。js。
function computeStateProps(store, props) {
var state = store.getState(); <<<<< The error occurs here.
var stateProps = shouldUpdateStateProps ? finalMapStateToProps(state, props) : finalMapStateToProps(state);
_invariant2['default'](_utilsIsPlainObject2['default'](stateProps), '`mapStateToProps` must return an object. Instead received %s.', stateProps);
return stateProps;
}
在该错误发生之前的断点处,控制台。log(store)返回此值。
function (reducer, initialState) {
var store = next(reducer, initialState);
var _dispatch = store.dispatch;
var chain = [];
var middlewareAPI = {
getState: store.…
但是,当我使用节点后端、控制台运行完全相同的代码时。日志(存储)返回此对象。
devToolsStore: Object
dispatch: (action)
getReducer: getReducer()
getState: getState()
replaceReducer: replaceReducer(nextReducer)
subscribe: subscribe(listener)
我的根组件和配置存储。js看起来像这样:
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from '../store/configureStore';
import { createStore, applyMiddleware, combineReducers, compose } from 'redux';
import { DevTools, DebugPanel, LogMonitor } from 'redux-devtools/lib/react';
import AsyncApp from './AsyncApp';
const store = configureStore();
export default class Root extends Component {
render() {
return (
<div>
<Provider store={store}>
{() => <AsyncApp />}
</Provider>
<DebugPanel top right bottom>
<DevTools store={store} monitor={LogMonitor} />
</DebugPanel>
</div>
);
}
}
配置tore.js
import { createStore, applyMiddleware, combineReducers, compose } from "redux";
import thunkMiddleware from "redux-thunk";
import loggerMiddleware from "redux-logger";
import rootReducer from "../reducers";
import thunk from 'redux-thunk';
import { devTools, persistState } from 'redux-devtools';
const finalCreateStore = compose(
applyMiddleware(thunkMiddleware),
devTools(),
persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/)),
createStore
);
export default function configureStore(initialState) {
return finalCreateStore(rootReducer, initialState);
}
我猜您正在运行一个较旧的示例代码。Redux 2.0compose()
函数API中出现了突破性的变化。
而不是
const finalCreateStore = compose(
applyMiddleware(thunkMiddleware),
devTools(),
persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/)),
createStore
);
你大概想要
const finalCreateStore = compose(
applyMiddleware(thunkMiddleware),
devTools(),
persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/))
)(createStore);
当我将js逻辑作为单个js文件编写在闭包中时,一切正常,如下所示: 但是当我尝试在同一个js文件中的闭包之前插入一个日志替代函数时, 它抱怨存在类型错误: 我做错了什么?
无法理解为什么在尝试实现此角度代码时会出现TypeError。它在类({constructor:function(){}})周围生成错误。不确定原因。谢谢你的帮助
store.js index.js 文件夹src compose index.js和store.js 显示消息未捕获类型错误:(0,_store.configureStore)在F12时不是函数 帮帮我谢谢
我试图在setTimeout之后进行状态更改以更改类名,但是,我总是得到一个“aboutheader.jsx:21 uncathed typeerror:this.setstate不是一个函数”。从“React”导入React; require('../../stylesheets/component/aboutheader.scss'); timeDelay(){setTimeout(函数upd
我的代码: external.js: 不幸的是,当我包含外部脚本时,出现以下错误: 错误:$不是一个函数 我该怎么解决这个问题?请记住,我不能编辑外部Javascript文件,因为它是第三方的。
因此,我想使用Apollo客户端react钩子“usequery”查询运行Apollo服务器的graphql后端。 但是定义的查询常量将返回一个错误,它是:uncatched typeerror:(...)不是函数,因此页面根本不呈现。 我的ApolloClient和提供程序设置如下: 当加载应用程序时,它会给我上面提到的错误。我在2小时内跟踪了我能找到的每一个教程,googeling和YouTu