Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Redux Devtool(chrome扩展)未显示状态_Javascript_Reactjs_Redux_Redux Devtools Extension - Fatal编程技术网

Javascript Redux Devtool(chrome扩展)未显示状态

Javascript Redux Devtool(chrome扩展)未显示状态,javascript,reactjs,redux,redux-devtools-extension,Javascript,Reactjs,Redux,Redux Devtools Extension,我是Redux新手,Redux开发工具更新 我制作了一个简单的应用程序,你点击一个用户,它会显示一些关于他的数据 因此,基本上在状态中,我有当前选定的用户 但我不知道为什么redux devtool中的状态一直是空的。(不在应用程序中) 这里是我创建店铺的地方: import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import { createSt

我是Redux新手,Redux开发工具更新

我制作了一个简单的应用程序,你点击一个用户,它会显示一些关于他的数据

因此,基本上在状态中,我有当前选定的用户

但我不知道为什么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'));
}

这是一个减速器:

import {USER_SELECTED} from '../actions/index'
export default function (state = null,action){
    switch(action.type){
        case USER_SELECTED :
            return action.payload
    }

    return state
}

最后是行动呼吁:

export const USER_SELECTED = 'USER_SELECTED'
export function selectUser(user){
    return {
        type : USER_SELECTED,
        payload : user
    }
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__()

我在看几年前我是如何做到这一点的,这将起到关键作用:

const store = createStore(reducers, 
  window.devToolsExtension && window.devToolsExtension()
)
对于从事旧项目/教程的潜在redux新手,请了解

window.devToolsExtension
已被弃用,取而代之的是
window.REDUX\u DEVTOOLS\u扩展`,并将在下一版本的REDUX DEVTOOLS中删除:


如前所述,替换为
window.\uuuu REDUX\u DEVTOOLS\u EXTENSION\uuu&&window.\uuuu REDUX\u DEVTOOLS\u EXTENSION\uu()

我尝试了所有方法,但REDUX仍然没有显示在开发工具中, 所以我尝试了这个chrome扩展。安装此扩展插件后也要重新加载

它像一个符咒一样发挥作用

还有档案,

store.js

App.js

从'react redux'导入{Provider};//导入提供程序和存储
从“./store”//使用存储导入存储
ReactDOM.render(
,
document.getElementById('root'))
);                                                      

您是否将这一行添加到您的商店<代码>窗口.\uuuuRedux\uDevTools\uuuuuuuuuuuuu扩展和窗口.\uuuuRedux\uDevTools\uuuuuuuuu扩展()就是这样!谢谢,真的!!!别担心。很高兴我能帮忙。我将把它作为一个答案发布给你,请接受:)这个视频解释了如何将redux devtool连接到基本的react redux应用程序-
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
);
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')
);