13

我是 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)

该应用程序运行良好,但我可能遗漏了一些东西。

谢谢你的帮助 !

4

4 回答 4

13

如果您使用中间件设置了商店,请尝试以下操作

import { createStore, applyMiddleware, compose } from 'redux';

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, /* preloadedState, */ composeEnhancers(
    applyMiddleware(...middleware)
  ));
于 2017-05-10T04:29:22.490 回答
11

您是否将此行添加到您的商店?

window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()

github.com/zalmoxisus/redux-devtools-extension#11-basic-stor‌​e

于 2017-05-12T01:24:12.103 回答
2

我正在研究几年前我是如何做到的,这可以解决问题:

const store = createStore(reducers, 
  window.devToolsExtension && window.devToolsExtension()
)

对于从事旧项目/教程的潜在 redux 新手来说,知道

window.devToolsExtensionis deprecated in favor of窗口。REDUX_DEVTOOLS_EXTENSION `,并将在 Redux DevTools 的下一版本中删除:https ://git.io/fpEJZ

如前所述,替换为window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()

于 2020-02-04T00:47:55.383 回答
0

我尝试了一切,但 Redux 仍然没有显示在开发工具中,所以我尝试了这个 chrome 扩展。安装此扩展后也重新加载。

https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd/related?hl=en

它就像一个魅力

还有文件,

store.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')
);                                                      
于 2021-05-09T06:32:19.260 回答