私は反応経路を使用していますが、私は経路指定にいくつか問題があります。ページ全体を再読み込みせずに経路を設定するには?
ページ全体がリロードされているため、私が既に取り出してレデューサーに保存したすべてのデータが毎回ロードされます。私はすでに問題は、私はテキスト入力欄が別のページへのルートに持っている
/** @jsx React.DOM */
'use strict'
var ReactDOM = require('react-dom')
var React = require('react')
var Index = require('./components/index')
var createStore = require("redux").createStore
var applyMiddleware = require("redux").applyMiddleware
var Provider = require("react-redux").Provider
var thunkMiddleware = require("redux-thunk").default
var reducer = require("./reducers")
var injectTapEventPlugin =require('react-tap-event-plugin');
injectTapEventPlugin()
var createStoreWithMiddleware=applyMiddleware(thunkMiddleware)(createStore);
var store=createStoreWithMiddleware(reducer);
store.dispatch(actions.load_contacts()) //////////// <<<<<< this is what i call to store data already
ReactDOM.render(<Provider store={store}><Index/></Provider> , document.getElementById('content'))
私main.jsxでアクションを呼び出すことによって、データを格納ルーティングする前に
var CustomRoute = React.createClass({
render:function(){
return <Router history={browserHistory}>
<Route path="/" component={Layout}>
<IndexRedirect to="/landing" />
<Route path="landing" component={Landing} />
<Route path="login" component={Login} />
<Route path="form" component={Form} />
<Route path="*" component={NoMatch} />
</Route>
</Router>
},
});
:ここ
は私のルートファイルですログイン:
this.props.dispatch(actions.login(this.state.login,this.state.password,(err)=>{
this.setState({err:err})
if (!err){
window.location = "/form"
}
}));
window.locationのトリックを行いますが、非常に非効率なすべてをリロードします。 手動ルートでは、私は<Link\>
を使用して再ロードせずにルートを使用しますが、自動化の方法はわかりません。
いずれの提案も大変ありがとうございます。
多くのおかげで、これは私のためにトリックをしました。 'var browserHistory = require( 'react-router')。browserHistory' と' browserHistory.push( '/ form') 'を呼び出してください。 –
お手伝いします:) –