gpt4 book ai didi

javascript - 如何在react中为不同的组件使用不同的 header

转载 作者:行者123 更新时间:2023-12-02 23:41:04 26 4
gpt4 key购买 nike

这是我的主 app.js 文件,包含所有路由。现在有两个 Header 组件。现在我需要使用 Header1仅包含 MyProfileHome 组件以及包含 MarketingHeader2。我怎样才能用最好的方法做到这一点?

const App = (props) => (
<Provider store={store}>
<Layout>
<Header1 {...props}/>
<Header2 {...props}/>
<Router>
{/*<PrivateRoute path="/app/profile" component={Profile} />*/}
<Marketing path="/app" {...props}/>
<PrivateRoute path="/app/my-profile" component={MyProfile} location={props.location}/>
<PrivateRoute path="/app/home" component={Home} location={props.location}/>
</Router>
</Layout>
</Provider>
)

export default App

最佳答案

解决您的问题的一个可能的解决方案可能是显式定义哪些组件需要在路由内呈现。但我认为这不是您可以采取的最佳方法。

<Route path='/app/my-profile' render={ props =>
<>
<Header1 {...props} />
<MyProfile />
</>
} />

我想到的另一个解决方案可能是将 header 包含在 MyProfile 组件中。在我看来,这是更优雅的方式。因此,您的 App.js 将仅包含路由路径,而您的组件将处理它们包含的内容:

const App = (props) => (
<Provider store={store}>
<Layout>
<Router>
<Marketing path="/app" {...props}/>
<PrivateRoute path="/app/my-profile" component={MyProfile} location={props.location}/>
<PrivateRoute path="/app/home" component={Home} location={props.location}/>
</Router>
</Layout>
</Provider>
)

export default App

您的 MyProfile 组件可能如下所示:

const MyProfile = (props) => (
<>
<Header1 {...props}/>
<p>This is my profile</p>
</>
)

export default MyProfile

关于javascript - 如何在react中为不同的组件使用不同的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078234/

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