Ich bin Anfänger mit Redux und universelle Reaktion Redux-Anwendung zu erstellen.Redux Möglichkeit, eine Aktion auf Serverseite zu verschicken
Ist dies eine Option, um eine asynchrone Aktion auf Serverseite wie store.dispatch(actions.getOutput())
auf Serverseite zu versenden.
getOutput ist eine asynchrone Aktion, die einige API auf Abruf abrufen und den Status auf redux ändern.
Ich weiß, dass es auf Client-Seite mit redux-Thunk-Middleware versenden, aber nicht das Verständnis des Prozesses auf Server-Seite
let context = {},
status = 200;
const allReducers = combineReducers({
...reducers
});
const store = createStore(
allReducers,
compose(
applyMiddleware(thunkMiddleware, promise)
)
);
const preloadedStore = store.getState()
store.dispatch(actions.getStories());
const finalState = store.getState();
const ctx = ReactDomServer.renderToString(
<Provider store={store}>
<StaticRouter context={context} location={req.url}>
<App/>
</StaticRouter>
</Provider>
),
reactHelmet = ReactHelmet.renderStatic();
if(context.url){
return res.redirect(302, context.url);
}
if(context.status === 404){
status = 404;
}
let page = renderOutput(ctx, finalState, reactHelmet);
res.status(status).send(page);
tun können Sie versuchen, [redux-catch-Versprechen] (https://github.com/DenisIzmaylov/redux-catch-promise), aber es sieht zwar furchtbar kompliziert. –