您應該使用商店。這是你如何實現它。
Index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { createStore, applyMiddleware, compose } from 'redux';
import promise from 'redux-promise';
import rootReducer from "../reducers/root";
import Root from '../config/root';
let store = createStore(rootReducer, compose(
applyMiddleware(promise),
window.devToolsExtension ? window.devToolsExtension() : f => f
));
ReactDOM.render(
<Root store={store} />
,document.getElementById('root')
);\
Root.js
import React from 'react';
import { Route, BrowserRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import PropTypes from 'prop-types';
import Index from '../components/index';
import Login from '../components/login';
import Signup from '../components/signup';
const Root = ({ store }) => {
return(
<Provider store={store}>
<BrowserRouter>
<div>
<Route exact path="/" component={Index}/>
<Route path="/login" component={Login}/>
<Route path="/signup" component={Signup}/>
</div>
</BrowserRouter>
</Provider>
);
};
Root.propTypes = {
store: PropTypes.object.isRequired
};
export default Root;
我不認爲我明白你清楚。你能再次解釋你的問題嗎? – cyonder
對不起。我希望生活在'全局狀態'中的一些變量(意味着它們可以從應用程序中的任何地方訪問,並且可以輕鬆傳遞到組件)。在過去,我一直把這個狀態放在App組件中。但是,現在我使用React Router,我甚至不渲染應用程序組件,而是渲染 組件。我想知道是否應該將全局狀態添加到Route組件,因爲這是呈現的內容,或者是否有其他位置可以保持全局狀態。 –