【发布时间】:2021-03-01 13:07:00
【问题描述】:
我在页面中有一个链接,我希望它将道具传递给作为类组件的路由组件,我该怎么做?这是我到目前为止所做的代码:
链接所在的文件:
<List
itemLayout="horizontal"
dataSource={classes}
renderItem={item => (
<List.Item>
<List.Item.Meta
title = {
<Link
to={{
pathname : "/Class",
state: {Name: item.Name}
}}
className="ListItem"
>
{item.Name}
</Link>
}
/>
</List.Item>
)}
/>
这是我存储所有路由的 index.js,我还有一个上下文。提供者:
ReactDOM.render(
<Provider store= {store}>
<Router>
<Layout>
<Switch>
<Route component={LandingPage} exact path="/" />
<Route path="/dashboard" >
<UserProvider>
<Dashboard/>
</UserProvider>
</Route>
<Route path="/Class" >
<UserProvider>
<Class/>
</UserProvider>
</Route>
<Route component={NewMessage} path="/New-Message" />
<Route path="/Inbox" >
<UserProvider>
<Inbox/>
</UserProvider>
</Route>
<Route path="/Outbox" >
<UserProvider>
<Outbox/>
</UserProvider>
</Route>
<Route component={ResetPassword} path="/reset-password" />
<Route component={ResetPasswordConfirmed} path="/reset/password/confirm/:uid/:token" />
<Route component={Signup} path="/signup" />
<Route component={Activate} path="/activate/:uid/:token" />
</Switch>
</Layout>
</Router>
</Provider>,
document.getElementById('root')
);
这是链接指向的文件(Class.js):
class Class extends React.Component {
static contextType = userContext
state = {
Curriculum: [],
Classworks: [],
Homeworks: [],
activeClass: ""
}
componentDidMount() {
const { state } = props.location.state
this.setState({
activeClass: state
});
console.log(this.state.activeClass);
}
render()
{
const { user_data, classes } = this.context
return(
<div className="back">
<Navbar/>
{this.state.activeClass}
<main className= "MainContent">
<div className="Class">
<h2 className="class">
</h2>
</div>
</main>
<br/>
<footer className="Footer">Designed by Eng. Omar Redwan</footer>
</div>
)}
}
export default Class;
【问题讨论】:
-
这能回答你的问题吗? Pass props in Link react-router
-
通过传递道具是指将路由状态传递给组件吗?有什么问题?
标签: reactjs react-router react-router-dom react-context react-component