我正在尝试使用React-Router V4将路由添加到我的应用程序,但它根本不起作用.基本上,我正在尝试以编程方式更改路径history.push
,即更新浏览器URL,但不更改实际应用程序内的任何内容.
注意:我使用的是redux.
关于这个问题,唯一回答的问题是:
React history.push()正在更新url但不在浏览器中导航到它
但是,我已经尝试了上述问题的答案,但它对我不起作用.
以下是重要的片段:
最顶层的文件(index.js)
...
ReactDOM.render(
<BrowserRouter>
<Provider store={store}>
<App/>
</Provider>
</BrowserRouter>
, document.getElementById('root'));
...
Run Code Online (Sandbox Code Playgroud)
包含路线的组件
...
export default function ContentRouter() {
return <div className="content">
<Route exact path="/dashboard" component={TmpDashboard}/>
<Route exact path="/" component={() => {
return <h1>Home</h1>
}}/>
</div>
}
Run Code Online (Sandbox Code Playgroud)
组件推送路线
...
this.handleGroupClick = (group) => {
this.props.history.push(`/groups/${group}`);
this.props.onOpenChange(false);
};
...
export default withRouter(connect(mapStateToProps, mapDispatchToProps(DrawerConnector))
Run Code Online (Sandbox Code Playgroud)
为什么我不能用Java做到这一点:
interface Context{
void add(Integer o);
}
class Subclass implements Context{
@Override
public void add(Object o){...}
}
Run Code Online (Sandbox Code Playgroud)
难道Subclass.add不会实现Context.add,因为它添加(Object)可以执行所有add(Integer)可以吗?
这有什么好办法?
现在我正在做一种丑陋的方式:
private void actuallyAdd(Object o){...}
public void add(Object o){actuallyAdd(o);}
public void add(Integer o){actuallyAdd(o);}
Run Code Online (Sandbox Code Playgroud)
编辑:这不是上述问题的重复.在给定的问题中,超类是具有更通用的"对象"作为参数的超类,而子类更具体.这不起作用,因为更具体的方法可能无法处理任何对象.在我的问题中,子类不如超类特定,这意味着子类总是能够处理超类所需的任何内容.