дочернее приложение в виде пакета npm не перерисовывается - PullRequest
0 голосов
/ 11 марта 2019

У меня есть родительское приложение, которое загружает дочернее приложение, созданное в виде отдельного пакета npm. При изменении состояния дочернего приложения (MyComponent) родительское приложение не выполняет рендеринг, что вызывает некоторую «блокировку рендеринга» для дочернего приложения.

// parent app
// package.json
"my-child-app": "^0.1.0"

// ChildApp.jsx
import ChildApp from "my-child-app";
...
render() {
  return <ChildApp appHistory={history} />;
}

// child app
render() {
  const { history } = createHistory(this.props.appHistory);
  return (
    <Provider store={store}>
      <PersistGate loading={null} persistor={persistor}>
        <Router history={history}>
          <Switch>
            <Route path="*" component={MyComponent} />
          </Switch>
        </Router>
      </PersistGate>
    </Provider>
  );
}

Проблема связана с маршрутами? Или что-то еще?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Я нашел проблему. Оказывается, конфиг веб-пакета в родительском приложении имел:

{
  ...
  devServer: {
    watchOptions: {
      poll: false
    }
  }
}
0 голосов
/ 11 марта 2019

Похоже, что если у вас есть такая непредсказуемость, вам нужна функция, передаваемая от родительского к дочернему компоненту, и когда этот дочерний элемент изменяется, вы должны вызвать эту родительскую функцию для forceUpdate или просто установить состояние снова, и оно будет перерисовано.

this.forceUpdate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...