React-Redux ekosisteminde yeniyim, basit uygulamaları deneyerek öğreniyorum. Bu durumda, tepki red-red uygulamasında yönlendirmenin nasıl çalıştığını deniyorum. Temelde, fikirdir: sevk zaman uyumsuz eylem başarıyla tamamlayan yeni bir sayfaya bir bağlantı tıklayarak yeni sayfayaReact-Redux'daki Yönlendirme Sorunları
- Gezinti (bir tepki-yönlendirici bileşeni)
- gezinin.
İşte benim kod
import React from 'react'
import {Link} from 'react-router'
import {routerActions} from 'react-router-redux'
import {connect} from 'react-redux'
class App extends React.Component {
render() {
// And you have access to the selected fields of the State too!
return (
<div>
<header>
Links:
{' '}
<Link to="/">Home</Link>
{' '}
<Link to="/foo">Foo</Link>
{' '}
<Link to="/bar">Bar</Link>
</header>
<div>
<button onClick={() => routerActions.push('/foo')}>Go to /foo</button>
</div>
</div>
)
}
}
export default connect(null, null)(App);
===================================================================
import React from 'react'
import {connect} from 'react-redux'
class Foo extends React.Component {
render() {
return (
<div> <h1>I'm Foo</h1> </div>
)
}
}
export default connect(null, null)(Foo);
===================================================================
import React from 'react'
import {connect} from 'react-redux'
class Bar extends React.Component {
render() {
return (
<div> <h1>I'm bar</h1> </div>
)
}
}
export default connect(null, null)(Bar);
===================================================================
import React from 'react'
import ReactDOM from 'react-dom'
import {Provider} from 'react-redux'
import {Router, Route, browserHistory} from 'react-router'
import {syncHistoryWithStore} from 'react-router-redux'
import configureStore from './store'
import App from './components/test/App';
import Bar from './components/test/Bar';
import Foo from './components/test/Foo';
// Get the store with integrated routing middleware.
const store = configureStore()
// Sync browser history with the store.
const history = syncHistoryWithStore(browserHistory, store)
// And use the prepared history in your Router
ReactDOM.render(
<Provider store={store}>
<div>
<Router history={history}>
<Route path="/" component={App}>
<Route path="/foo" component={Foo}/>
<Route path="/bar" component={Bar}/>
</Route>
</Router>
</div>
</Provider>,
document.getElementById('root')
===================================================================
import {combineReducers,createStore, applyMiddleware} from 'redux'
import thunk from 'redux-thunk'
import createLogger from 'redux-logger'
import userReducer from './reducers/reducer-user';
import {routerMiddleware,routerReducer} from 'react-router-redux'
import {browserHistory} from 'react-router'
export default function configureStore() {
// Create the routing middleware applying it history
const browserMiddleware = routerMiddleware(browserHistory);
const logger = createLogger();
const reducer = combineReducers({
userState: userReducer,
routing: routerReducer
})
const store = createStore(reducer,applyMiddleware(thunk,browserMiddleware,logger));
return store;
}
uygulama gayet kurar ve o iyi gelir ama bağlantıyı tıkladığınızda, bu işe yaramaz.
Bkz. screen shot of the running application
Çevresinde arama yaptım ve çeşitli yayınları okuyun ancak kök sorununu kesin olarak belirleyemedim.
Bunun bir kopyası olabilir: http://stackoverflow.com/questions/35196873/how-to-use-react-router-redux-routeactions/37494808 - aslında kullanmanız gerektiği gibi görünüyor 'this.props.dispatch (routeActions.push ('/ deneme));' –