根目录下的 React-router 可选路径参数

its*_*s30 5 reactjs react-router react-router-redux

我对如何从根执行(多个)可选路径参数有点困惑。我正在使用react-router 3和redux 4.3。

据我了解,(/:param1)(/:param2)应该可以工作,但加载应用程序时出现以下错误:

[react-router] 位置“/property/3633”与任何路由不匹配。

索引.js:

import React from 'react';

import ReactDOM from 'react-dom';

import { Provider } from 'react-redux';

import { Router, browserHistory, Route } from 'react-router';

import { syncHistoryWithStore } from 'react-router-redux';

import configureStore from './store/configureStore';

import {MyContainer} from "./containers/MyContainer";

const store = configureStore();
const history = syncHistoryWithStore(browserHistory, store);

ReactDOM.render(
    <Provider store={store}>
        <Router history={history}>
            <Route path="/(/:Type)(/:Id)" component={MyContainer}/>
        </Router>
    </Provider>,
    document.getElementById('root'),
);
Run Code Online (Sandbox Code Playgroud)

仅供参考我已经尝试过:

path="(/:Type)(/:Id)" 
path="(/:Type)/(/:Id)" 
path="/(/:Type)/(/:Id)" 
path="/(/:Type)(/:Id)" 
path="/:Type/:Id" // Only works when params are supplied
Run Code Online (Sandbox Code Playgroud)

这有效:

<Route path="/test(/:Type)(/:Id)" component={MyContainer}/>
Run Code Online (Sandbox Code Playgroud)

但同样,这并不:

<Route path="/(/:Type)(/:Id)" component={MyContainer}/>
Run Code Online (Sandbox Code Playgroud)

小智 1

今天有同样的问题。我设法像这样解决它:

<Route path="/(:param1)(:/param2) component={SomeComponent}"
Run Code Online (Sandbox Code Playgroud)