Załóżmy, że mam Link
, który przesyła mnie do strony w celu dodania/edycji wpisu na liście.Jak wysłać akcję po kliknięciu linku podczas korzystania z React-Router i Redux?
Jak wysłać akcję Redux, gdy klikam na samym Link
, aby najpierw zaktualizować sklep Redux, zanim zostanie on przekierowany na tę stronę.
Np .: Klikam na przycisk Edytuj -> Akcja jest wysyłana -> Zapisz zaktualizowany, {'state': 'edit-mode'}
-> Przejdź do przekierowania.
A może masz inny sposób na wykonanie tego, co próbuję zrobić?
Może po zamontowaniu podzespołu wykonam akcję podobną do stateToEdit
na podstawie określonych warunków? Jeśli tak, to pokaż mi swoją drogę. Dzięki
PS: Używam tylko jednego komponentu do wszystkich operacji dodawania/edycji/usuwania. Więc myślę o sposób, aby uczynić na podstawie state
czy jej na edit-mode
lub delete-mode
itp
Zamiast używać 'Link', możesz użyć' browserHistory.push (path) 'z funkcją' onClick'. Wewnątrz tej funkcji wyślij swoją akcję, a następnie popchnij do nowej lokalizacji. – lux
Myślałem też o czymś takim, ale nie jestem zbyt pewny, czy to jest właściwy sposób rozwiązania problemu. Chyba użyję tej metody na razie. Jeśli są inne sposoby, chciałbym to wiedzieć. Dzięki –
Bardziej odpowiednim sposobem rozwiązania tego problemu może być wprowadzenie 'redux-thunk', które prawdopodobnie pomoże w organizacji kodu nieco więcej, biorąc pod uwagę, że prawdopodobnie chcesz wykonać to" wyślij coś, a następnie przejdź do innej strony "w różnych miejscach .Rzuć okiem na odpowiedź Dana tutaj, jestem pewien, że dostanę przekładni, aby dowiedzieć się, w jaki sposób możesz podejść do problemu w twoim kontekście: http://stackoverflow.com/questions/35493352/can-i-dispatch-multiple- actions-without-redux-thunk-middleware/35642783 # 35642783 – lux