这是我的 App.js
import React from "react";
import ReactDOM from "react-dom";
import { Router, Link } from "@reach/router";
import Add from "./components/Add";
import Home from "./components/Home";
import Navbar from "./components/Navbar";
import "./css/styles.css";
const App = () => {
return (
<div>
<Navbar />
<Router>
<Home path="/" />
<Add path="/add" />
</Router>
</div>
);
};
ReactDOM.render(<App />, document.getElementById("root"));
这是我的 Navbar.js
import React from "react";
import Link from "@reach/router";
import "../css/navbar.css";
const Navbar = () => {
return (
<nav className="navbar">
<div className="navitem">
<a href="/">
<h1>Beautiful Places</h1>
</a>
</div>
<div className="navitem">
{" "}
<Link to="/add">
<button className="btn">Add a Place</button>
</Link>
</div>
</nav>
);
};
export default Navbar;
但是我收到一个错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
但是当我使用锚标签而不是链接时,我没有收到任何错误,并且应用程序运行正常。在这方面需要帮助
但是当我在 App.js 中编写整个 Navbar 组件时,如下所示。
import React from "react";
import ReactDOM from "react-dom";
import { Router, Link } from "@reach/router";
import Add from "./components/Add";
import Home from "./components/Home";
import "./css/navbar.css";
import "./css/styles.css";
const App = () => {
return (
<div>
<nav className="navbar">
<div className="navitem">
<Link to="/">
<h1>Beautiful Places</h1>
</Link>
</div>
<div className="navitem">
{" "}
<Link to="/add">
<button className="btn">Add a Place</button>
</Link>
</div>
</nav>
<Router>
<Home path="/" />
<Add path="/add" />
</Router>
</div>
);
};
ReactDOM.render(<App />, document.getElementById("root"));
上面的 App.js 工作正常。