React native 如何在React本机类React navigation 5中实现暗模式?

React native 如何在React本机类React navigation 5中实现暗模式?,react-native,react-navigation-v5,darkmode,React Native,React Navigation V5,Darkmode,我正在尝试在我的应用程序中实现暗模式。如何在React navigation V5的类中实现这一点为React JS提供了答案 constructor(props) { super(props);//seems to be the same here for reactjs as react-native this.darkModeQuery = window.matchMedia(`(prefers-color-scheme: dark)`); this.light

我正在尝试在我的应用程序中实现暗模式。如何在React navigation V5的类中实现这一点为React JS提供了答案

  constructor(props) {
    super(props);//seems to be the same here for reactjs as react-native
    this.darkModeQuery = window.matchMedia(`(prefers-color-scheme: dark)`);
    this.lightModeQuery = window.matchMedia(`(prefers-color-scheme: light)`);
  }
  componentDidMount() {
    this.darkModeListener = navigation.addListener(this.darkModeQuery, this.setDark);
    this.lightModeListener = navigation.addListener(this.lightModeQuery, this.setLight);
  }
  setDark = (darkModeQuery) =>
    this.setState({
      darkMode: darkModeQuery.length !== 0,
      darkModeListener: darkModeQuery
    });
  setLight = (lightModeQuery) =>
    this.setState({
      lightMode: lightModeQuery.length !== 0,
      lightModeListener: lightModeQuery
    });
  componentWillUnmount() {
    const { lightModeListener, darkModeListener } = this.state;
    if (lightModeListener)
      this.lightModeListener.remove();
    if (darkModeListener)
      this.darkModeListener.remove();
  }
我发现询问如何翻译
window.addEventListener(this.mediaQuery,this.myFunc)
对于
this.darkModeListener=navigator.addEventListener(this.mediaQuery,this.myFunc)
回答了这个问题

  constructor(props) {
    super(props);//seems to be the same here for reactjs as react-native
    this.darkModeQuery = window.matchMedia(`(prefers-color-scheme: dark)`);
    this.lightModeQuery = window.matchMedia(`(prefers-color-scheme: light)`);
  }
  componentDidMount() {
    this.darkModeListener = navigation.addListener(this.darkModeQuery, this.setDark);
    this.lightModeListener = navigation.addListener(this.lightModeQuery, this.setLight);
  }
  setDark = (darkModeQuery) =>
    this.setState({
      darkMode: darkModeQuery.length !== 0,
      darkModeListener: darkModeQuery
    });
  setLight = (lightModeQuery) =>
    this.setState({
      lightMode: lightModeQuery.length !== 0,
      lightModeListener: lightModeQuery
    });
  componentWillUnmount() {
    const { lightModeListener, darkModeListener } = this.state;
    if (lightModeListener)
      this.lightModeListener.remove();
    if (darkModeListener)
      this.darkModeListener.remove();
  }
我发现询问如何翻译
window.addEventListener(this.mediaQuery,this.myFunc)
for
this.darkModeListener=navigator.addEventListener(this.mediaQuery,this.myFunc)