我是Redux的新手,Redux devtool是新的。
我制作了一个简单的应用程序,您可以在其中单击一个用户,它会显示有关他的一些数据。
所以基本上处于我当前选择的用户的状态。
但我不知道为什么状态在 redux devtool 中一直空着。(不在应用程序中(
这是我创建商店的地方:
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import App from './components/app';
import reducers from './reducers';
const createStoreWithMiddleware = applyMiddleware()(createStore);
ReactDOM.render(
<Provider store={createStoreWithMiddleware(reducers)}>
<App />
</Provider>
, document.querySelector('.container'));
这是动作:
export const USER_SELECTED = 'USER_SELECTED'
export function selectUser(user){
return {
type : USER_SELECTED,
payload : user
}
}
这是一个减速器:
import {USER_SELECTED} from '../actions/index'
export default function (state = null,action){
switch(action.type){
case USER_SELECTED :
return action.payload
}
return state
}
最后呼吁采取行动:
this.props.selectUser(user)
该应用程序运行良好,但我可能错过了一些东西。
感谢您的帮助!
如果您使用中间件设置了商店,请尝试以下操作
import { createStore, applyMiddleware, compose } from 'redux';
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, /* preloadedState, */ composeEnhancers(
applyMiddleware(...middleware)
));
您是否将此行添加到您的商店?
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
github.com/zalmoxisus/redux-devtools-extension#11-basic-stor e
我正在研究我几年前是如何做到的,这将解决问题:
const store = createStore(reducers,
window.devToolsExtension && window.devToolsExtension()
)
对于从事旧项目/教程的潜在 redux 新手,他们知道
window.devToolsExtension
is deprecated in favor of
window.REDUX_DEVTOOLS_EXTENSION',并将在下一版本的 Redux DevTools 中删除:https://git.io/fpEJZ
如前所述,替换为window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
我尝试了所有方法,但 Redux 仍然没有显示在开发工具中,所以我尝试了这个 chrome 扩展程序。安装此扩展后还要重新加载。
https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd/related?hl=en
它像一个魅力
还有文件,
商店.js
import { createStore, applyMiddleware } from "redux"; // importing redux,redux-thunk(for my own use) and redux-devtools-extension
import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';
const initialState = {}; // declaring the variable with empty state
const composeEnhancers = composeWithDevTools({});
const store = createStore( // creating the store
finalReducer,
initialState,
composeEnhancers(applyMiddleware(thunk)) // you can leave this as it is if no middleware
);
应用.js
import { Provider } from 'react-redux'; // importing the provider and store
import store from './store' // using store
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
我遇到了同样的问题。我还没有得到永久的解决方案,但这是解决方法 -
- 更改 chrome DevTools 主题,仅在需要时更改。
- 现在打开 devtools,您可以在 DevTools 中找到扩展选项卡。
- 您可以再次更改要保留的主题,这将解决您的问题。