【发布时间】:2017-12-18 13:18:27
【问题描述】:
我对 React 和 React Routing 还很陌生,所以也许我在这里完全走错了路。很高兴有任何帮助!所以我有一个像这样运行的电子应用程序:
// Define Options for Window object.
let windowOptions = {
width: 1200,
height: 800,
frame: false,
devTools: true,
};
// Define empty winobject
let elWin = {};
Electron.createApp()
.then(() => Electron.createWindow(elWin, './index.html', 'file:', windowOptions))
我正在将我的应用组件加载到 index.html 中的容器 (startView) 中:
//render App
ReactDOM.render((
<BrowserRouter>
<App />
</BrowserRouter>),
document.getElementById('startView')
);
为了更容易,我将应用程序减少到最低限度。所以我基本上想要的是一个初始的起始视图,它稍后会保存一个登录屏幕。成功登录后,单击登录按钮应该会出现一个新视图。这就是 Reacts 路由发挥作用的地方。应用如下所示:
const LoggedIn= () => (
<div> New View</div>
);
const Home = (props) => (
<div>
<ul>
<li><Link to="/newView"><button> Login </button></Link></li>
</ul>
</div>
);
class App extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<Switch>
<Route path="/" exact component={Home}/>
<Route path="/newView" component={LoggedIn}/>
</Switch>
</div>
);
}
}
export default App;
我的问题是我无法让 Home 组件渲染,因为我的 App 的初始路由明显不同。删除 'exact' 参数有效,它呈现 Home,但随后路由不再适用于其他路由(/newView),这也是有意义的。我有没有机会让 Home 在我的应用程序的初始路径上呈现,而其他路线仍在工作?
【问题讨论】:
-
只有两页吧?带有登录按钮的主页,点击登录后会转到另一个页面。
-
最后我有 3 或 4 个视图,但用户基本上是通过它们引导的。表示登录 -> View1 -> View2 等。总是通过单击按钮进入下一个视图
标签: javascript reactjs electron react-router-v4