/ / Ako prejsť na konkrétnu cestu v rámci akcie v aplikácii React s aplikáciou Redux - reakcia, reakcia, smerovač, reakcia reduxe

Ako prejsť na konkrétnu cestu v rámci akcie v reakcii s aplikáciou Redux - reakjs, reak-router, reak-redux

Som nováčikom v reakcii so štruktúrou Redux a jej koncepciou. V mojej aplikácii musím prejsť určitú cestu v akcii po prihlásení. Môj akčný kód je:

const login = (resp:Object) => (dispatch: any) =>{
// api call
if(apiCall is success){
window.location.href = "http://localhost:3000"+localStorage.getItem("pathBeforeLogin");
}
else{
window.location.href = "http://localhost:3000/login";
}
});
}

Tento kód funguje dobre, ale môj senior ma požiadal, aby som túto prácu vykonal bez použitia window.location.href, Ako používame reaktor-router v4, browserHistory.push tiež nefunguje.

odpovede:

1 pre odpoveď č. 1

reagovať smerovača Redux poskytuje middleware Redux, ktorý vám umožňuje navigovať pomocou akcií Redux.

z https://github.com/reactjs/react-router-redux:

import { createStore, combineReducers, applyMiddleware } from "redux";
import { routerMiddleware, push } from "react-router-redux";

// Apply the middleware to the store
const middleware = routerMiddleware(browserHistory);
const store = createStore(
reducers,
applyMiddleware(middleware)
);

// Dispatch from anywhere like normal.
store.dispatch(push("/foo"));

Takže vo vašom príklade namiesto priradenia reťazcov k window.location.href by ste urobili nasledovné:

store.dispatch(push("/login"));