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>
);
}
}
私が理解していることから、ストアを構成してプロバイダーに渡すだけなので、このコンポーネントのストアに接続できない可能性があります。 onLocation
イベントでアクションをディスパッチするにはどうすればよいですか?
ストアオブジェクトを使用して直接ディスパッチできます。
store.dispatch({type:"UPDATE_VARIABLE", payload:variable.value})
ストアオブジェクトがすぐに利用できない他のコンポーネントにいる場合は、メインコンポーネントからエクスポートし、必要な場所にインポートして、上記のステートメントを使用します。
このコードを使用して、このようなクラスにコンストラクタを追加できます
constructor(props) {
super(props);
}
onLocation() {
this.props.dispatch({type: GET_THINGS_REQUESTED, payload: value});
}