React: не могу найти блокирующий компонент, используя реагирующий маршрутизатор - PullRequest
0 голосов
/ 10 мая 2018

Я думаю, это связано с тем, как я обновляю местоположение, но я не уверен.

То, как я это делаю, выглядит так:

<Route render={props => <Somecomponent location={props.location} /> } />

Затем в Somecomponent я делаю следующее:

someAction(context){
   globals.context = context
   // some other stuff that triggers an event ELSEWHERE
   // that event will update the location via this context variable
}

...
render(){
 return <Route render={context => {
       return <div onClick={() => this.someActionThatChangesLocation(context)}

}} /> }

В другом месте:

someEvent(){
   globals.context.history.push("/newlocation")
}

Что происходит, URL обновляется, но не отображается. Так что я застрял в старом взгляде.

Как я могу узнать, какой компонент блокирует рендеринг?

Я добавил реквизит местоположения, потому что я прочитал, что это вызывает триггер рендеринга, но он не работает, поэтому я предполагаю, что блокирующий компонент другой.

Я не уверен, как дальше отлаживать это ..

1 Ответ

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

Так что я не уверен, что именно исправило проблему сейчас, потому что я сильно изменился, пока она, наконец, не заработала.

  1. Компонент My App теперь упакован так:

    class AppWrapper extends Component { render() { return <Router> <Route component={withRouter(App)} /> </Router> } }

  2. Я больше не использую globals.context, потому что теперь я могу получить доступ к this.props.history внутри компонента App.js

  3. Я убедился, что это единственный маршрутизатор в моем приложении. Раньше у меня был компонент Router внутри моего приложения, а также в Wrapper, и я думаю, что по какой-то причине это заблокировало обновление, хотя я не уверен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...