浏览代码

Exposed redux function loadStore

master
Igor_Budimski 4 年前
父节点
当前提交
c2ad352725
共有 2 个文件被更改,包括 31 次插入11 次删除
  1. 14
    3
      src/index.js
  2. 17
    8
      src/views/demoComponent/DemoComponent1.js

+ 14
- 3
src/index.js 查看文件

import 'react-app-polyfill/stable'; import 'react-app-polyfill/stable';
import 'core-js'; import 'core-js';
import './polyfill' import './polyfill'
import React from 'react';
import React, { useState } from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import App from './App'; import App from './App';
import * as serviceWorker from './serviceWorker'; import * as serviceWorker from './serviceWorker';
import { createStore, applyMiddleware } from 'redux'; import { createStore, applyMiddleware } from 'redux';
import allReducer from './reducers/index.js'; import allReducer from './reducers/index.js';
import thunk from 'redux-thunk'; import thunk from 'redux-thunk';
import { setUserName, setLogged, setNotLogged } from './actions';


React.icons = icons React.icons = icons



let store = createStore( let store = createStore(
allReducer, allReducer,
applyMiddleware(thunk) applyMiddleware(thunk)
+ window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() + window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
); );


window.store = store;

window.loadStore = function (storeData) {
window.store.dispatch(setUserName(storeData.user));
if (storeData.isLogged === true) {
window.store.dispatch(setLogged(storeData.isLogged));
} else {
window.store.dispatch(setNotLogged(storeData.isLogged));
}
}

//store.subscribe(() => console.log(store.getState(allReducer))); //store.subscribe(() => console.log(store.getState(allReducer)));


ReactDOM.render( ReactDOM.render(
<Provider store={store}> <Provider store={store}>
<App/>
<App />
</Provider>, </Provider>,
document.getElementById('root') document.getElementById('root')
); );

+ 17
- 8
src/views/demoComponent/DemoComponent1.js 查看文件

import React, { lazy, useState, useContext } from 'react';
import React, { lazy, useState, useContext, useEffect } from 'react';
import { import {
CBadge, CBadge,
CButton, CButton,
import CIcon from '@coreui/icons-react'; import CIcon from '@coreui/icons-react';
import { PDFEngine } from 'PDFEngine'; import { PDFEngine } from 'PDFEngine';


import { useDispatch } from 'react-redux';
import { useDispatch, useSelector } from 'react-redux';
import { setUserName, setLogged, setNotLogged } from '../../actions'; import { setUserName, setLogged, setNotLogged } from '../../actions';
import { ReactReduxContext } from 'react-redux'; import { ReactReduxContext } from 'react-redux';


const WidgetsDropdown = lazy(() => import('../widgets/WidgetsDropdown.js')) const WidgetsDropdown = lazy(() => import('../widgets/WidgetsDropdown.js'))




const DemoComponent1 = () => {
const DemoComponent1 = (props) => {


const list = [{ name: "Four Cards" }, { name: "Chart1" }, { name: "Chart1 Buttons" }, { name: "Chart1 Legend" }, { name: "Chart2" }, { name: "Table" }]; const list = [{ name: "Four Cards" }, { name: "Chart1" }, { name: "Chart1 Buttons" }, { name: "Chart1 Legend" }, { name: "Chart2" }, { name: "Table" }];

let textInput = React.createRef(); let textInput = React.createRef();
//const user = useSelector(state => state.user);
const user = useSelector(state => state.user);
const isLogged = useSelector(state => state.isLogged);
const dispach = useDispatch(); const dispach = useDispatch();
const { store } = useContext(ReactReduxContext); const { store } = useContext(ReactReduxContext);
const [userName, setUserName] = useState();



useEffect(()=>{
if(user){
setUserName(user);
}
},[user])


const handleSubmit = (event) => { const handleSubmit = (event) => {
event.preventDefault(); event.preventDefault();
<div style={{ display: 'flex', flexDirection: 'row', marginLeft: '10px' }}> <div style={{ display: 'flex', flexDirection: 'row', marginLeft: '10px' }}>
<button style={{ marginLeft: '5px' }} className=" btn btn-primary" onClick={exec}>Print view</button> <button style={{ marginLeft: '5px' }} className=" btn btn-primary" onClick={exec}>Print view</button>
</div> </div>
<form style={{margin: '15px'}} onSubmit={handleSubmit}>
<form style={{ margin: '15px' }} onSubmit={handleSubmit}>
<label> <label>
Name: Name:
<input ref={textInput} type="text" onChange={null} /> <input ref={textInput} type="text" onChange={null} />
<p>{userName}</p>
</label> </label>
<input type="submit" value="Submit" /> <input type="submit" value="Submit" />
<button onClick={() => dispach(setLogged())}>Log in</button>
<button onClick={() => dispach(setNotLogged())}>Log out</button>
<button style={{backgroundColor: isLogged ? "green" : "white"}} onClick={() => dispach(setLogged())}>Log in</button>
<button style={{backgroundColor: isLogged ? "white" : "red"}} onClick={() => dispach(setNotLogged())}>Log out</button>
<button onClick={() => GetStore()}>Log Store</button> <button onClick={() => GetStore()}>Log Store</button>
</form> </form>
</div> </div>
</> </>
); );
} }

export default DemoComponent1; export default DemoComponent1;

正在加载...
取消
保存