Как закрыть переключатель при нажатии снаружи с помощью Redux

#reactjs #redux #toggle

Вопрос:

Я включаю свое приложение с помощью Redux. Я установил начальное значение True. При нажатии на значок появляется и исчезает поле раскрывающегося списка пользователей. Как закрыть его, когда я нажимаю на внешнюю часть.

Мое приложение состоит из основных компонентов и компонентов заголовка. Мой вопрос в том, что при нажатии на главную страницу(фон) переключатель должен быть закрыт. Чтобы решить эту проблему, я даже поставил исправление на Main.js страница. Кажется, это работает. но когда был нажат основной, появляется переключатель….

Вот код, который вы можете мне посоветовать для решения этой проблемы?

 header.js
const Header = ({ hidden, headerSize, bigHeader, UserInfoHidden }) => {
...ommit ...
<OptionContainer>
        <Hostbtn>Host</Hostbtn>
        <UserIcon />
        {UserInfoHidden ? null : <UserDropDown />}
      </OptionContainer>
    </HeaderContainer>
  );
};

const mapStateToProps = ({
  header: { UserInfoHidden },
}) => ({
  UserInfoHidden,
});
const mapDispatchToProps = dispatch => ({
  headerSize: locationY => dispatch(headerSize(locationY)),
});
export default connect(mapStateToProps, mapDispatchToProps)(Header);




---------------
UserDropDown.js 
const UserDropDown = () => {
  return (
    <UserDropDwonBox>
      <UserItem>
        <Linked to="/login">login/Linked>
        <Linked to="/login">signIn</Linked>
        <Line />
        <Text>Hosting</Text>
        <Text>Qamp;A</Text>
      </UserItem>
    </UserDropDwonBox>
  );
};

export default UserDropDown;
---------------

header-reducer.js
const INITAL_STATE = {
  bigHeader: true,
  UserInfoHidden: true,
};

const headerReducer = (state = INITAL_STATE, action) => {
  switch (action.type) {
    case HeaderType.BIG_SIZE_HEADER:
      return {
        ...state,
        bigHeader: sizeOfBar(state.bigHeader, action.payload),
      };
    case HeaderType.USER_INFO_DROP_DOWN:
      return {
        ...state,
        UserInfoHidden: !state.UserInfoHidden,
      };
    default:
      return state;
  }
};
export default headerReducer;