Kihyun An
Kihyun An

Reputation: 251

React Native run function any outher screen

I have a simple question. I want to run the function I created in App.js in a different screen. Each screen is connected to an AppContainer in context. I'm going to use state on another screen, but I do not know how to do it. Can you give me a simple example?

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

    console.log(this.state.defaultLocation);

    this._getCurrent(locationKey);
  };

The above function is called this.props._setDefaultLocation (); I tried to do this and it did not work.

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 };

Context is used to make it like that.

Upvotes: 0

Views: 95

Answers (1)

Madhavi Jayasinghe
Madhavi Jayasinghe

Reputation: 596

You can use global keyword to make your function global. Then you can use it in any screen.

For example, assume that you have a function is called 'myFunction'. You can implement your function in App.js as following.

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

Then you can call this function in any screen just like other function calling..

In your case your function can implement in this format.

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

And when you are calling the function call it as _myFunction(locationKey).

NOTE: 'locationKey' is the parameter that you should pass for your function.

Think this solution will help you.

Upvotes: 1

Related Questions