как прослушать раскрывающееся значение в другом компоненте в реакции js - PullRequest
0 голосов
/ 08 апреля 2020

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

вот мой компонент

const RTL = () => {
const handleLanguageAction = lang => {
     console.log(lang , 'language')
   };

  return (
    <OptionsButton
  list={portalLanguages}
  float="right"
  helper="Please select any language"
  label="Language"
  action={handleLanguageAction}
    />
 );
};

вот мое приложение. js

const App = ({ role }) => {
return (
<MuiThemeProvider theme={theme}>
  <MuiPickersUtilsProvider utils={MomentUtils}>
    <SnackbarProvider>
      <BrowserRouter>
        <div dir={DIR}>
          <Layout>
            <RouteFactory routes={RouteComponents} config={routesConfig} role={role} />
          </Layout>
        </div>
      </BrowserRouter>
    </SnackbarProvider>
  </MuiPickersUtilsProvider>
</MuiThemeProvider>
 );
};

Я хочу, чтобы приложение. js прослушивало изменение значения в раскрывающейся функции, а также должно указывать значение, даже если я обновлю sh страницу. Кто-нибудь может мне помочь? спасибо

1 Ответ

1 голос
/ 08 апреля 2020

Вы можете использовать customEvent для связи между RTL и приложением

RTL

const myEvent = new CustomEvent('language', { detail: { lang } });
document.body.dispatchEvent(myEvent);

App. js

document.body.addEventListener("language", (event) => {
  console.log(event.detail);
});
...