Могу ли я иметь дочерний компонент в моем приложении для связи с основным компонентом приложения, используя контекст? - PullRequest
0 голосов
/ 07 апреля 2020

Я построил свое приложение, используя приложение create response как одностраничный веб-сайт. Хотя я хочу иметь динамические c заголовки, и я видел в этой статье , что с помощью helmet я могу достичь этого.

Дело в том, что я буду получить значения, которые я хочу установить в качестве заголовка только на внутренней динамической c странице.

Как я могу получить эту страницу для связи с родительским компонентом моего основного приложения? Могу ли я использовать контекст как-то? Я не могу себе представить, как, потому что у приложения нет родителя, в котором я могу App с поставщиком контекста. Кроме того, я использую маршрутизатор и не могу понять, как можно развернуть setState на тот случай, если я захочу go таким образом.

Достигнуто ли приложение вне связи?

Это код компонента моего приложения:

const App = () => {
  return (
    <MetaProvider>
      <AuthProvider>
        <PageProvider>
          <SearchProvider>
            <ToastProvider>
              <Helmet>
                <title>{stream.title}</title>
                <meta name="description" content={stream.body} />
              </Helmet>

              <Router history={history}>
                <div className="app">
                  <SignUp />
                  <UpdateProfile />
                  <NewStream />
                  <EditedStream />
                  <Header />

                  <Switch>
                    <Route path="/" exact component={Home} />
                    <Route path="/on/:id" exact component={Search} />
                    <Route path="/stream/:id" exact component={SingleStream} />
                    <Route path="/:id" exact component={Stranger} />
                    <Route path="/contact" exact component={Contact} />
                  </Switch>
                </div>
              </Router>
            </ToastProvider>
          </SearchProvider>
        </PageProvider>
      </AuthProvider>
    </MetaProvider>
  );
};

export default App;

1 Ответ

0 голосов
/ 07 апреля 2020

Нет необходимости общаться с вашим приложением. Если ваш компонент Helmet и ваша страница Dynami c находятся внутри одного и того же поставщика контекста, вы можете сохранить заголовок в состоянии контекста и прочитать его внутри компонента Helmet.

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