我在 React 应用程序中遇到两个 .js 文件的问题!我正在使用 react-router-dom。我的问题是 Link 标签
I have a problem with two .js files in a react app! I am using the react-router-dom. My problem is with the Link tag
我正在使用 React 制作一个静态网络应用程序。它有更多的页面,所以我正在使用 react-router-dom,但是当我使用 Link 标签时,它不仅出现在我想要的页面上,而且还出现在它假设的页面上重定向。
除此之外,一切正常:它指向的页面呈现正常,但 link 在左下角。任何人都可以查看我的代码并告诉我我做错了什么吗?
我只希望 link 'To Do List' 显示在这里:
import React, { Component } from 'react'
import { BrowserRouter as Router, Route } from 'react-router-dom'
import { Link } from 'react-router-dom'
import Todo from '../apps/todo/Todo'
class Projects extends Component {
render() {
return (
<Router>
<div>
<Route exact path="/todo" component={Todo} />
<Link style={projectsTodo} href="/todo">
To Do List
</Link>
</div>
</Router>
)
}
}
link 出现在这里:
import React, { Component } from 'react'
import Header from './layout/Header'
import Todos from './Todos'
import uuid from 'uuid'
class Todo extends Component {
state = {
todos: [
{
id: uuid.v4(),
title: 'Learn React',
completed: false,
},
{
id: uuid.v4(),
title: 'Find suitable web hosting service',
completed: false,
},
],
}
delTodo = id => {
this.setState({
todos: [...this.state.todos.filter(todo => todo.id !== id)],
})
}
render() {
return (
<div>
<Header />
<Todos todos={this.state.todos} delTodo={this.delTodo} />
</div>
)
}
}
export default Todo
发生这种情况是因为您在渲染 Link 时没有指定任何路线(因此它会在所有路线上呈现)。请参阅 first example of React Router 以获得更好的理解。
如果您不希望发生这种情况,请定义另一个组件 Home
(例如),它将保存 Link 并向您的路由器添加另一个路由以呈现该组件。
import React, { Component } from 'react'
import { BrowserRouter as Router, Route } from 'react-router-dom'
import { Link } from 'react-router-dom'
import Todo from '../apps/todo/Todo'
const Home = props => {
return (
<div>
<h2>Home</h2>
<Link style={projectsTodo} href="/todo">
To Do List
</Link>
</div>
)
}
class Projects extends Component {
render() {
return (
<Router>
<div>
<Route exact path="/" component={Home} />
<Route exact path="/todo" component={Todo} />
</div>
</Router>
)
}
}
我正在使用 React 制作一个静态网络应用程序。它有更多的页面,所以我正在使用 react-router-dom,但是当我使用 Link 标签时,它不仅出现在我想要的页面上,而且还出现在它假设的页面上重定向。 除此之外,一切正常:它指向的页面呈现正常,但 link 在左下角。任何人都可以查看我的代码并告诉我我做错了什么吗?
我只希望 link 'To Do List' 显示在这里:
import React, { Component } from 'react'
import { BrowserRouter as Router, Route } from 'react-router-dom'
import { Link } from 'react-router-dom'
import Todo from '../apps/todo/Todo'
class Projects extends Component {
render() {
return (
<Router>
<div>
<Route exact path="/todo" component={Todo} />
<Link style={projectsTodo} href="/todo">
To Do List
</Link>
</div>
</Router>
)
}
}
link 出现在这里:
import React, { Component } from 'react'
import Header from './layout/Header'
import Todos from './Todos'
import uuid from 'uuid'
class Todo extends Component {
state = {
todos: [
{
id: uuid.v4(),
title: 'Learn React',
completed: false,
},
{
id: uuid.v4(),
title: 'Find suitable web hosting service',
completed: false,
},
],
}
delTodo = id => {
this.setState({
todos: [...this.state.todos.filter(todo => todo.id !== id)],
})
}
render() {
return (
<div>
<Header />
<Todos todos={this.state.todos} delTodo={this.delTodo} />
</div>
)
}
}
export default Todo
发生这种情况是因为您在渲染 Link 时没有指定任何路线(因此它会在所有路线上呈现)。请参阅 first example of React Router 以获得更好的理解。
如果您不希望发生这种情况,请定义另一个组件 Home
(例如),它将保存 Link 并向您的路由器添加另一个路由以呈现该组件。
import React, { Component } from 'react'
import { BrowserRouter as Router, Route } from 'react-router-dom'
import { Link } from 'react-router-dom'
import Todo from '../apps/todo/Todo'
const Home = props => {
return (
<div>
<h2>Home</h2>
<Link style={projectsTodo} href="/todo">
To Do List
</Link>
</div>
)
}
class Projects extends Component {
render() {
return (
<Router>
<div>
<Route exact path="/" component={Home} />
<Route exact path="/todo" component={Todo} />
</div>
</Router>
)
}
}