在任何屏幕上反应本机运行功能

时间:2018-12-20 04:45:16

标签: function react-native screen

我有一个简单的问题。 我想在另一个屏幕中运行在App.js中创建的函数。 每个屏幕在上下文中都连接到一个AppContainer。 我将在另一个屏幕上使用状态,但是我不知道该怎么做。 能给我一个简单的例子吗?

  _setDefaultLocation = locationKey => {
    console.log("call _setDefaultLocation function");
    
    this.setState({ defaultLocation: locationKey });

    console.log(this.state.defaultLocation);

    this._getCurrent(locationKey);
  };

以上功能称为this.props._setDefaultLocation();我试图这样做,但是没有用。

import React from "react";

const WeatherContext = React.createContext();

function withWeather(WrappedComponent) {
  return function withContext(props) {
    return (
      <WeatherContext.Consumer>
        {value => <WrappedComponent value={value} {...props} />}
      </WeatherContext.Consumer>
    );
  };
}

export { WeatherContext, withWeather };

上下文用于使它像这样。

1 个答案:

答案 0 :(得分:1)

您可以使用global关键字使函数成为全局函数。然后,您可以在任何屏幕上使用它。

例如,假设您有一个名为“ myFunction”的函数。您可以按照以下步骤在App.js中实现您的功能。

global.myFunction = () => {
    console.warn('I am a global function...')
    // your function body
};

然后,您可以在任何屏幕上调用此函数,就像其他函数调用一样。

在您的情况下,您的函数可以以这种格式实现。

global._myFunction = locationKey => {
    console.warn('I am a global function...')
    // your function body
};

在调用该函数时,将其称为_myFunction(locationKey)

注意:“ locationKey”是您应该为函数传递的参数。

认为此解决方案将为您提供帮助。