我在使用Redux加载Bar.it时有问题,我在根还原器中使用不可变的js,redux不变库,我没有任何错误。如果我检查元素树,只有一个空的div。我在这里犯了什么错误
index.js
import { ImmutableLoadingBar as LoadingBar} from 'react-redux-loading-bar'
class Header extends React.Component {
render() {
return (
<header>
<LoadingBar />
</header>
)
}
}reducer.js
import { combineReducers } from 'redux-immutable';
import { loadingBarReducer } from 'react-redux-loading-bar'
export function rootReducer(state = routeInitialState, action) {
switch (action.type) {
case LOCATION_CHANGE:
return state.merge({
location: action.payload,
});
default:
return state;
}
}
export default function createReducer(injectedReducers) {
return combineReducers({
route: rootReducer,
language: languageProviderReducer,
loadingBar: loadingBarReducer,
...injectedReducers,
});
}store.js
import { createStore, applyMiddleware, compose } from 'redux';
import { routerMiddleware } from 'react-router-redux';
import createSagaMiddleware from 'redux-saga';
import createReducer from './reducers';
import { loadingBarMiddleware } from 'react-redux-loading-bar'
export default function configureStore(initialState = {}, history) {
const middlewares =
[sagaMiddleware,routerMiddleware(history),loadingBarMiddleware()];
const enhancers = [applyMiddleware(...middlewares)];
const composeEnhancers =
process.env.NODE_ENV !== 'production' &&
typeof window === 'object' &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
shouldHotReload: false,
})
: compose;
const store = createStore(
createReducer(),
fromJS(initialState),
composeEnhancers(...enhancers),
);
store.runSaga = sagaMiddleware.run;发布于 2020-04-17 21:38:20
我也有类似的问题,但我没有使用不变的js。然而,无论如何,我还是想发布我的解决方案,也许它会对某人有所帮助:)
所以我按照npm页面上的说明做了所有事情,但是我忽略了一个细节:输出连接的容器" LoadingBar“和LoadingBar组件本身。(见https://github.com/mironov/react-redux-loading-bar/issues/79#issuecomment-441355249)
因此,请确保导入连接的容器(没有LoadingBar周围的大括号):
import LoadingBar from 'react-redux-loading-bar'对许多人来说,这可能是微不足道的,但也许它会对某人有所帮助。
https://stackoverflow.com/questions/53928356
复制相似问题