gpt4 book ai didi

javascript - React 路由器呈现空白页面

转载 作者:行者123 更新时间:2023-11-28 12:15:50 25 4
gpt4 key购买 nike

我正在尝试学习 ReactJS,而新的 React 路由器在嵌套路由方面确实让我感到困惑。

我只想有如下三个路线
/- 主页
/users - 列出所有用户
/users/add - 添加用户表单

您可以在下面看到完整的代码示例

View code in codesandbox.io

当我点击 //users 时,它工作正常。但是,当我到达 /users/add 时,路由器会呈现一个空白页面而不是 AddUser 组件。

我知道我可以在index.js本身中定义绝对路由,例如/users/users/add。但我想有一种更易于维护的方式来定义子组件内部的路由器。

知道如何解决这个问题吗?

// src/index.js 
render(
<BrowserRouter>
<div>
<Route exact path="/" component={App} />
<Route path="/about" component={About} />
<Route exact path="/users" component={UserLayout} />
</div>
</BrowserRouter>,
document.getElementById("root")
);



class UserLayout extends Component {
constructor(props) {
super(props);
}

render() {
return (
<div className="users">
<Route exact path={this.props.match.path} component={Users} />
<Route path={`${this.props.match.path}/add`} component={AddUser} />
</div>
);
}
}

最佳答案

在您的src/index.js文件中 <Route exact path="/users" component={UserLayout} />

应该是

<Route path="/users" component={UserLayout} />

发生的事情是您的精确使其仅在 /users 上匹配所以当您将路径更新为/users/add时它不再与路径匹配

关于javascript - React 路由器呈现空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com