【问题标题】:How to create route in Electron + React App如何在 Electron + React App 中创建路由
【发布时间】:2021-10-04 21:31:47
【问题描述】:

大家好,Js 脚本家族,

目前我正在基础级别的 Electron + React js 项目上工作,我已经成功创建了项目,但现在我需要继续进行路由过程。但我坚持下去并得到如下错误

> (node:12411) electron: Failed to load URL:
> file:///opt/lampp/htdocs/electron/employee-management/addemployee with
> error: ERR_FILE_NOT_FOUND (Use `electron --trace-warnings ...` to show
> where the warning was created)

我按照以下方法进行路线

-> 安装反应路由器
npm install --save react-router-dom

在 index.js 文件中导入反应路由器 dom

从'react-router-dom'导入{HashRouter as Router, Route, Switch};

我的 index.js 文件

import React from 'react';
import ReactDom from 'react-dom';
import {HashRouter as Router, Route, Switch} from 'react-router-dom';
import {Home} from './components/Home';
import { AddEmployee } from './components/AddEmployee';

import '../public/css/style.css';
ReactDom.render(
    <Router>
        <Switch>
            <Route path="/" component={ Home }>
                <Home />
            </Route>
            <Route exact={true} path="/addemployee" component={ AddEmployee }>   
                <AddEmployee />
            </Route>
        </Switch>
    </Router>,
    document.getElementById('root')
);

还有我添加了 href nav 的头文件

import React from 'react';
import { Container, Button, Navbar, Nav, NavItem, NavDropdown, MenuItem, Form, FormControl } from 'react-bootstrap';

export const Header = () => {
    return (
        <>
        
            <Navbar bg="dark" variant="dark">
                <div className="container-fluid">
                    <Navbar.Brand href="">Employee Management</Navbar.Brand>
                    <Nav className="me-auto">
                        <Nav.Link href="./addemployee">Add Employee</Nav.Link>
                    </Nav>
                    <Form className="d-flex">
                    <FormControl
                        type="search"
                        placeholder="Search"
                        className="mr-2"
                        aria-label="Search"
                    />
                    &nbsp;&nbsp;<Button className="ml-3" variant="outline-secondary">Search</Button>
                    </Form>
                </div>
            </Navbar>
        
        </>
    )
}

希望你们能理解我的问题。

还有一件事是我已经独立创建了这个单目录项目。首先创建电子项目,然后安装反应并使用反应组件渲染文件。

提前致谢

【问题讨论】:

    标签: javascript node.js reactjs electron


    【解决方案1】:

    据我从参数名称中可以看出,您正在通过href 进行路由。但是,您使用的是HashRouter。您应该改为将哈希推送到历史记录。

    使用Router Link 代替来自 React Bootstrap 的链接,我相信您也可以将它作为一个组件提供给 bootstrap 组件。

    或:

    const history = useHistory();
    //...
    history.push("/addemployee"); //in the onClick handler
    

    【讨论】:

    • 我已经用 Link 替换了 navlink,现在没有显示错误,但是路由不起作用。
    • &lt;Nav.Link as={Link} to='/addemployee' ... 怎么样?
    • Np,很高兴为您提供帮助
    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 2019-07-19
    • 2020-10-25
    • 2016-10-26
    • 1970-01-01
    • 2022-08-17
    • 2023-02-08
    • 1970-01-01
    相关资源
    最近更新 更多