изменения маршрута, но нет запроса с axios для обновления данных - PullRequest
0 голосов
/ 10 мая 2018

Я читал о работе с заблокированными обновлениями, но не повезло:

<Provider store={createStoreWithMiddleware(reducers)}>
        <Router>
            <Route component={App}/>
        </Router>
    </Provider>

и app.js:

class App extends Component {
  render() {
    return (
        <div>
            <Switch>
                <Route exact path="/" component={Home}/>

                {/*<Route exact path="/Blog" render={props => (
                        <Redirect to={`/Blog/page-${props.match.params.id}`}/>
                    )}/>*/}


                <Redirect exact from="/blog" push to="/blog/page=1"/>
                <Route path="/blog/page=:p" component={BlogPage}/>
                <Route path="/post/:id" component={BlogPageInfoPage}/>
                <Route path="/blog/categories/:id/page=:p" component={FilterCategoryPage}/>
                <Route path="/blog/search/:term/page=:p" component={SearchCategoryPage}/>
                <Route path="/cart" component={Cart}/>
                <Route path="/products" component={Products}/>
                <Route path="/product/:id" component={ProductPage}/>
                <Route path="/supplier" component={SupplierHomePage}/>
                <Route path="/register" component={RegisterPage}/>
                <Route path="/*" component={NotFound}/>
            </Switch>
            <Footer/>
        </div>
    );
  }
}

export default App;

Я нажимаю на ссылку дочернего компонента:

<Link to={`/blog/categories/${cat.id}/page=1`}><span
                        className="fs-11 text-muted float-left"></span>{cat.title}</Link>

я знаю, что местоположение меняется в первый раз, но во второй раз нет, и родительская страница с HOC withRouter:

function mapStateToProps(state) {
    return {posts: state.posts, blogPagination: state.blogPagination};
}

export default withRouter(connect(mapStateToProps, {fetchSpecificCats, fetchBlogCatPagination})(FilterCategory));

если вам нужно больше кода, чтобы узнать, что происходит, скажите мне

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Я сделал это с помощью componentDidUpdate, и он работает:

componentDidUpdate(prevProps) {
        if (prevProps.location !== this.props.location) {
            const {id} = this.props.match.params;
            const {p} = this.props.match.params;
            this.props.fetchSpecificCats(id, p);
            this.props.fetchBlogCatPagination(id, p);
        }
    }
0 голосов
/ 10 мая 2018

Попробуйте изменить:

export default connect(mapStateToProps, {fetchSpecificCats, fetchBlogCatPagination})(withRouter(FilterCategory));
...