import React from "react";
import { useParams } from "react-router-dom";
class TaskDetail extends React.Component {
componentDidMount() {
let { id } = useParams();
this.fetchData(id);
}
fetchData = id => {
// ...
};
render() {
return <div>Yo</div>;
}
}
export default TaskDetail;
Error: Invalid hook call. Hooks can only be called inside of the body of a function component.
您可以使用withrouger
来实现这一点。只需将导出的类组件包装在wishrouter
中,然后就可以使用this.props.match.params.id
来获取参数,而不是使用useparams()
。您还可以通过使用withrouger
获取任何位置
、匹配
或history
信息。它们都是在this.props
下传入的
使用您的示例,它将如下所示:
import React from "react";
import { withRouter } from "react-router";
class TaskDetail extends React.Component {
componentDidMount() {
const id = this.props.match.params.id;
this.fetchData(id);
}
fetchData = id => {
// ...
};
render() {
return <div>Yo</div>;
}
}
export default withRouter(TaskDetail);
就这么简单!
我使用的是React Router v4的最新版本,我试图在div中呈现我的页面组件Home/About,但我遇到的问题是,如果我将路由添加到我的头中,它将切换路由,但它们将显示Home/About组件作为头的一部分,而不是我希望它们出现的位置。 如果我将路由放入中,则路由器不工作,但不会在控制台上抛出任何错误。 如何在div中显示和切换组件? 网页链接 app.js Header.js home
我试图路由到一个类组件,但它给我一个错误。当我将组件更改为功能性组件时,路由就开始工作了。如何路由到类组件? 我刚开始使用React-Router。我首先有一个要路由到的功能组件。但是一旦我意识到组件需要是一个类,我就把它更改为一个类,现在路由显示 “无法获取/探索/单词”。
我有包含组件A的组件B。组件A定义了PropType以验证其属性。我希望组件B中有一个表示组件a中属性的属性,验证它们并引用它们。我似乎不明白。以下是我到目前为止所做的(为简化本次讨论而抽象): ComponentB中包含PropTypes.shape的行不会抛出任何警告,但是我仍然可以向ComponentA传递虚假的属性值,所以我觉得仍然缺少一些东西。也就是说,我可以写作 没有警告或错误,即使c
本文向大家介绍React-Router 4中` `组件有几种类型?相关面试题,主要包含被问及React-Router 4中` `组件有几种类型?时的应答技巧和注意事项,需要的朋友参考一下 HashRouter:老浏览器的history,主要通过hash来实现,对应 BrowserRouter:高版本浏览器,通过html5里面的history,对应 **MemeoryRouter:**node环境下
问题内容: 由于我正在使用react-router来处理我的React应用程序中的路由,因此我很好奇是否有一种方法可以重定向到外部资源。 说某人点击: 我希望它重定向到: 我发现避免在index.html加载类似以下内容的纯JS中编写零帮助: 问题答案: 我实际上最终构建了自己的组件。 它从元素中获取信息,因此我可以将其保留在自己的路线中。如: 如果有人好奇,这是我的组件: 编辑-注意:这与一起使