Jeśli chcesz przekazać pewną wartość do jakiegoś fragmentu kodu w JavaScript, musisz użyć funkcji.
Na przykład
function createGeoLocationService(store) {
let backgroundGeoLocation = new BackgroundGeoLocation()
backgroundGeoLocation.configure(coordinates => {
store.dispatch({ type: 'UPDATE_COORDINATES', coordinates })
})
return backgroundGeoLocation
}
Teraz, gdziekolwiek stworzyć sklep, tworzyć tę placówkę:
let store = createStore(reducer)
let backgroundGeoLocation = createGeoLocationService(store)
Jeśli chcesz uzyskać do niego dostęp w komponentach, możesz:
- Zrób to singleton (tak, nie to, co chciałeś, ale jest to ważna opcja dla aplikacji tylko dla klienta).
- Podaj to WN wyraźnie poprzez podpory (można dostać uciążliwe, ale jest to najbardziej prosty i wyraźny sposób)
- Pass it down pośrednio poprzez kontekst (bardzo łatwe, ale będziesz mieć do czynienia z unstable API that is subject to change więc jest to na sumieniu)
Zauważ, że '' od 'react- redux' stosuje technikę "przekazuj w sposób niejawny przez kontekst", więc jeśli używasz Redux, już "radzisz sobie z niestabilnym API", nie wiedząc o tym. –
@AnsonKao Nie musisz zmieniać aplikacji, gdy zmienia się niestabilny interfejs API. Ukrywamy jego użycie przed Tobą. –