湖上湖
2023-07-14 16:31:01
這是我的Index.jsReactDOM.render( <React.StrictMode> <Provider store={store}> <Router> <App className="app-main" /> </Router> </Provider> </React.StrictMode>, document.getElementById('root'));這是App.jsx<Switch> appRoutes.map(route => <Route path={route.path} component={route.component} key={route.key}/> )}</Switch><BottomNav />我想在特定路線中渲染BottomNav組件,其中它們也是一些子路線。我在底部導(dǎo)航中使用了withRouter,但它的匹配只是一個(gè)“/”,我只能訪問(wèn)位置。位置對(duì)我來(lái)說(shuō)還不夠,因?yàn)檎缥宜f(shuō),這些路線中有一些子路線。例如,在個(gè)人資料路線中,我有活動(dòng)和朋友。我想在個(gè)人資料/朋友中渲染 BottomNav,但不在個(gè)人資料/活動(dòng)中渲染 BottomNav,我怎樣才能實(shí)現(xiàn)這一點(diǎn)。我的解決方案是在 redux 中設(shè)置當(dāng)前路由路徑并將其傳遞到底部導(dǎo)航,并檢查它是否在我渲染底部導(dǎo)航的有效路由中,但我無(wú)法在不同視圖中編寫(xiě)和重復(fù)一個(gè)函數(shù),直到它們安裝時(shí)更新 redux 中的當(dāng)前路由。我忘了說(shuō)我是 React 新手,請(qǐng)溫柔一點(diǎn)并詳細(xì)解釋一下 tnx :)
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
我沒(méi)有測(cè)試過(guò),只是從我的腦海中提出來(lái)。這個(gè)想法是您創(chuàng)建一個(gè)應(yīng)該顯示 BottomNav 的路線圖。否則,只需返回 null。
import {withRouter} from 'react-router-dom'
const ROUTES_WITH_BOTTOM_NAV = {
'/home': true,
'/profile/friends': true
}
const BottomNav = (props) => {
const currentPage = props.location.pathname;
if (!ROUTES_WITH_BOTTOM_NAV[currentPage]) return null;
return (...yourBottomNavJsx)
}
export const withRouter(BottomNav)
讓我知道這是否有幫助。
添加回答
舉報(bào)
0/150
提交
取消