reactjs:ルートテーブル全体をプログラムで置換する方法
let render =() => {
const routes = require('./routes/index').default(store)
ReactDOM.render(
<AppContainer store={store} routes={routes} />,
MOUNT_NODE
)
}
// ========================================================
// Go!
// ========================================================
render()
アプリ全体がすべてのルートと店舗を知っていることを前提として動作します。
私はルートを再構築し、アプリケーションの実行後にプログラム的に保存したいと考えています。
プラグインbundle.jsをプログラムでDOMに注入することで、新しいルートとストアがプラグインとして導入されます。だから私は、ルートや店頭を知らない。
私はriotjを使用してこれを行いました。ここで私はルートテーブル全体をスワップアウトし、ストアを動的に追加および削除できます。私は今、react-reduxを学び始めており、私の研究に焦点を当てる場所についてのヒントを期待しています。
より簡潔な例
let store = createStore1()
let store2 = createStore2()
let routes = require('./routes/index').default(store)
let routes2 = require('./routes2/index').default(store2)
let render =() => {
ReactDOM.render(
<AppContainer store={store} routes={routes} />,
MOUNT_NODE
)
}
// ========================================================
// Go!
// ========================================================
render()
私は、プログラム実行時にroutes2とstore2に切り替えたいです。
変更する必要があるたびに 'redux'を使って経路をグローバル状態に'ディスパッチ 'して、 'AppContainer'内の状態からそれらを取得できませんか? – Purgatory
@Puratory私はあなたが提案したことをやったと思います。私はMobXを私の国家管理ライブラリとして使用し、私のルートを観測可能なものとしてマークしました。私はルートを変更し、私のAppContainerはリフレッシュします。新しいルートは自由に動的に追加および削除できます。ありがとう –
これを回答として投稿し、それを受け入れて、他の人があなたの問題が解決されたことを知ることができるようにしてください。 – Purgatory