Match.params 沒有在componentDidUpdate().我的路線是/sidebar/:id,如果從sidebar/1我去sidebar/2的this.props.match.params.id是仍然顯示id為1,而不是更新的URLid 中2componentDidUpdate()嘗試過props.location但仍然顯示舊網址的數據。側邊欄頁面組件 componentDidMount () { const id = this.props.match.params.id; //fetching some data}componentDidUpdate(prevProps) { console.log("Prevprops",prevProps.match.params.id); console.log("Cuurent id",this.props.match.params.id); //if both ids not same then fetch data again}路由器const routes = [ { path: "sidebar/:id", component: asyncComponent(() => import('../sidebarPage')), },];class AppRouter extends Component { render() { const { url } = this.props; return ( <div> {routes.map(singleRoute => { const { path, exact, ...otherProps } = singleRoute; return ( <Route exact={exact === false ? false : true} key={singleRoute.path} path={`${url}/${singleRoute.path}`} /> ); })} </div> ); }}我希望當我去sidebar/1到sidebar/2的componentDidUpdate this.props.match.params.id節目2和prevProps表演1。
React componentDidUpdate 在 url 更改時不會更改
九州編程
2021-06-30 09:49:49