Czy dispatch'owanie przez store jest ok ?

0

Siema, mam pytanko odnosnie reduxa, czy w niektorych przypadkach mozna uzywac dispatch bezposrednio importujac store ? Chcialem tak zrobic, w takim przypadku

import {onChange} from './onChange';
<App onChange={onChange}/>
import Store from 'Store';
export function onChange = () => Store.dispatch({action: 'SOME'})

Pisane na szybko. Chcialem uniknac wywolywania funkcji przy propsie onChange i zeby funkcja onChange zyla sobie osobne. Czy to jest dobre podejscie ?

0

A jaka miałaby być zaleta takiego rozwiązania?
Czemu nie action creator i connect?

0

czy w niektorych przypadkach mozna uzywac dispatch bezposrednio importujac store ?

Można, tylko wtedy masz większy coupling w przeciwieństwie do rozwiązania, w którym dispatch / (bądź funkcje, które wywołują dispatch) byłyby wstrzykiwane dynamicznie.

Tzn. te linijki :

import {onChange} from './onChange';

i

import Store from 'Store';

Uzależniają twoje komponenty od konkretnej implementacji store (i konkretnego modułu, w którym jest to zadeklarowane). No i w sumie masz coś w rodzaju singletona czy zmiennej globalnej (nie mówię, że tu musi być zawsze złe, po prostu aplikacja staje się bardziej monolityczna).

Wstrzykiwanie do obiektów rzeczy przez props pozwala na uniezależnienie komponentu od store'a, więc twoja aplikacja staje się bardziej modularna (przynajmniej w teorii, w praktyce to różnie bywa - np. ludzie czasem jedną rzecz elegancko wstrzykują, a 10 innych rzeczy dalej importują "na pałę", więc i tak często uzależniają sobie jeden moduł od 10 innych)

1 użytkowników online, w tym zalogowanych: 0, gości: 1