Javascript 专门定义hashHistory,但---无法读取未定义(…)的属性“getCurrentLocation”
我一辈子都搞不懂为什么这个设置不起作用。我已经尝试解决这个问题10个小时了。我正在使用历史记录3.2.1、react router 3.0.2和react router redux 4.0.7、webpack 1.14.0 这个设置在开发中工作得非常好,但是一旦打包就不起作用了,因为看起来hashHistory没有定义。用于生产和开发的configureStore没有本质上的不同 所有涉及的变量都是在devtools确认执行时定义的。我认为问题在于加载我的routes.js可能会看到下面的图片 任何人能提供的任何帮助都将不胜感激。谢谢你的阅读 错误: configureStore.production.js Index.js 尝试从包依赖项卸载历史npm模块 反应路由器依赖项: React路由器已经依赖于它,将随React路由器安装一起安装正确的历史记录版本 您不需要单独安装它 试一试 然后Javascript 专门定义hashHistory,但---无法读取未定义(…)的属性“getCurrentLocation”,javascript,reactjs,webpack,react-router,react-router-redux,Javascript,Reactjs,Webpack,React Router,React Router Redux,我一辈子都搞不懂为什么这个设置不起作用。我已经尝试解决这个问题10个小时了。我正在使用历史记录3.2.1、react router 3.0.2和react router redux 4.0.7、webpack 1.14.0 这个设置在开发中工作得非常好,但是一旦打包就不起作用了,因为看起来hashHistory没有定义。用于生产和开发的configureStore没有本质上的不同 所有涉及的变量都是在devtools确认执行时定义的。我认为问题在于加载我的routes.js可能会看到下面的图片
install --save react-router@your_version
再说一遍
检查是否有效。谢谢您的回复!不幸的是,我安装它是为了解决这个问题。使用react路由器中内置的历史记录会产生相同的结果。是否已正确卸载?只是要求确保这个问题不是其他问题。你检查过你的package.json是否有正确的依赖项吗?是的,我能告诉你的一切都有正确的依赖项。npm没有通知我任何错误、无效对等点、缺少依赖项等,我自己也找不到任何错误。
import { applyMiddleware, createStore, compose } from 'redux';
import { responsiveStoreEnhancer } from 'redux-responsive';
import thunk from 'redux-thunk';
import { routerMiddleware, push } from 'react-router-redux';
import rootReducer from '../reducers';
import storage from '../utils/storage';
import * as noteActions from '../actions/notes_actions';
var createHistory = require('history').createHashHistory;
const hashHistory = createHistory();
const actionCreators = {
...noteActions,
push,
};
const router = routerMiddleware(hashHistory);
const enhancer = compose(
responsiveStoreEnhancer,
applyMiddleware(thunk, router),
storage(),
);
export default function configureStore(initialState: Object | void) {
return createStore(rootReducer, initialState, enhancer);
}
import _ from 'lodash';
import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import storage from 'electron-json-storage';
import { syncHistoryWithStore } from 'react-router-redux';
import * as applicationUtils from './utils/functions';
import configureStore from './store/configureStore';
import myRoutes from './routes';
import './app.global.css';
var Router = require('react-router').Router;
var createHistory = require('history').createHashHistory;
let applicationState;
let stateKeyPresent;
let createStore;
let myHistory;
const hashHistory = createHistory();
function createStoreFunction() {
createStore = configureStore(applicationState);
myHistory = syncHistoryWithStore(hashHistory, createStore);
render(
<Provider store={createStore}>
<Router history={myHistory} routes={myRoutes} />
</Provider>,
document.getElementById('root')
);
}
storage.keys((err, keys) => {
if (err) throw err;
for (let i = 0; i < keys.length; i++) {
if (keys[i] === 'state') {
stateKeyPresent = keys[i];
}
};
});
let getStoredState = new Promise(function(resolve,reject) {
storage.get('state', (err, data) => {
if (!stateKeyPresent) {
applicationState = {};
resolve();
} else if (data) {
applicationState = JSON.parse(data);
resolve();
} else {
applicationState = {};
resolve();
}
});
});
getStoredState.then(() => {
createStoreFunction()
});
"dependencies": {
"history": "^3.0.0",
"hoist-non-react-statics": "^1.2.0",
"invariant": "^2.2.1",
"loose-envify": "^1.2.0",
"warning": "^3.0.0"
},
npm uninstall --save history react-router
install --save react-router@your_version