javascript - 子组件不使用 React Router v4 渲染
问题描述
我正在尝试使用 React 嵌套路由,这就是我的应用程序的样子
Posts.js(父(复数)组件)呈现良好。
import React from "react";
import { Route } from "react-router-dom";
import Post from "./Post";
import { Link, Switch } from "react-router-dom";
const Posts = ({ match }) => {
return (
<div>
<h2>Topics</h2>
<ul>
<li>
<Link to={`${match.url}/rendering`}>Rendering with React</Link>
</li>
<li>
<Link to={`${match.url}/components`}>Components</Link>
</li>
<li>
<Link to={`${match.url}/props-v-state`}>Props v. State</Link>
</li>
</ul>
<div>
<Route path={`${match.path}/:topicId`} component={Post} />
<Route
exact
path={match.path}
render={() => <h3>Please select a topic.</h3>}
/>
</div>
</div>
)}
export default Posts;
后组件(子(单数)组件)
import React from "react";
const Post = ({ match }) => (
<div>
<h1>Child component</h1>
<h3>{match.params.topicId}</h3>
</div>
);
export default Post;
不知道这里缺少什么配置,父组件在路由上渲染得很好,而子组件内容没有渲染
控制台没有错误。
父路由配置
import React from "react";
import { Switch, Route,NavLink } from "react-router-dom";
import Home from "./container/home/Home";
import About from "./container/about/About";
import Posts from "./container/post/posts";
import PageNotFound from "./container/Error/404";
const routes = () => (
<Switch>
<Route path="/" exact component={Home}></Route>
<Route path="/about" component={About}></Route>
<Route exact path="/post" component={Posts}></Route>
<Route component={PageNotFound}> </Route>*/}
</Switch>
)
export default routes;
应用程序.js
import React, { Component } from 'react';
import './App.css';
import Layout from "./hoc/layout/layout";
class App extends Component {
render() {
return (
<Layout></Layout>
);
}}
export default App;
解决方案
所以你的代码中的错误是非常微不足道的。在父路由(即渲染Posts
组件的路由)中,您有一个exact
关键字,因此Routes
like/posts/:postId
不会将此确切路由与路径匹配/post
,因此内部路由或嵌套子路由将不起作用
您需要更改您的路线配置,例如
const routes = () => (
<Switch>
<Route path="/" exact component={Home}></Route>
<Route path="/about" component={About}></Route>
<Route path="/post" component={Posts}></Route>
<Route component={PageNotFound}> </Route>*/}
</Switch>
)
export default routes;
推荐阅读
- android-studio - 不显示具体的错误资源。双击错误 - 无法解决问题
- r - downloadButton 在闪亮的服务器中下载多个响应式渲染图
- python - 在 ruamel.yaml 中将别名读取为字符串
- c# - 如何使用 Youtube API V3 在 C# 中获取我的订阅者列表?
- r - 用一个字符分割一个 sf 对象而不删除它在 R 中的几何图形
- javascript - 无法使用 React js 从本地文件夹显示 svg
- r - 如何使用 ggparliament 获得显示每个政党所需颜色的图形?
- powershell - Powershell Construct Date ForEach 多次返回第一个文件的日期
- php - Laravel 应用程序不保存数据且不显示任何错误
- python-3.x - self 指的是超类而不是子类