web-dev-qa-db-fra.com

Possible d'envoyer une action sans se connecter?

export default class App extends Component {
...
  componentDidMount() {
    //registering event listener
    BackgroundGeolocation.on('location', this.onLocation, this.onError);
  }

  onLocation(location) {
   //wishing to dispatch an action to update variable in store
  }

  render() {
    return (
      <Provider store={store}>
        <AlertProvider>
          <MainNavigator screenProps={{ isConnected: this.state.isConnected }} />
        </AlertProvider>
      </Provider>
    );
  }
}

D'après ce que je comprends, je ne peux pas me connecter au magasin dans ce composant car nous ne faisons que configurer et transmettre le magasin au fournisseur. Comment puis-je éventuellement envoyer une action dans mon événement onLocation?

7
Isaac

Vous pouvez directement envoyer à l'aide de l'objet de magasin.

store.dispatch({type:"UPDATE_VARIABLE", payload:variable.value})

Si vous êtes dans un autre composant où l'objet de magasin n'est pas facilement disponible, exportez-le à partir du composant principal et importez-le à un emplacement où il est nécessaire et utilisez l'instruction ci-dessus

18
Rohith Murali

Vous pouvez utiliser ce code et ajouter le constructeur dans la classe comme ceci

  constructor(props) {
    super(props);
  }

  onLocation() {
    this.props.dispatch({type: GET_THINGS_REQUESTED, payload: value});
  }
0
hardik beladiya