typesafe-actions(createStandardAction) 无法在带有 redux 的服务器上运行
typesafe-actions(createStandardAction) not working on server with redux
我正在尝试通过使用 createStandardAction(typesafe-actions) 来分派一个动作,然后它转到 epic(redux-observable) 以进行 api 调用。
奇怪的是它与存根数据完美配合,它完成了流程(即组件->动作->epic->reducer->store)但是在实际使用它时动作不会触发或进入史诗服务器
**Component:-**
export const mapDispatchToProps = (dispatch: Dispatch): ReduxActions => ({
loadTestData: () => dispatch(loadTestData())
})
export default connect(
mapStateToProps,
mapDispatchToProps
)(withNavigation(loadData))
**Action**
import { ActionsUnion, createStandardAction } from 'typesafe-actions'
export const LOADDATA_GET = 'LOADDATA_GET'
export const loadData = createStandardAction(LOADDATA_GET)<void>()
const actions = {
loadData
}
export type AllActions = ActionsUnion<typeof actions>
**Epic**
import { Action, MiddlewareAPI } from 'redux'
import { ActionsObservable, Epic } from 'redux-observable'
import { Observable } from 'rxjs'
import {
LOADDATA_GET
} from './loadData.actions'
export const getloadDataEpic: Epic<Action, ReduxState> = (
action$: ActionsObservable<any>,
store: MiddlewareAPI<any, ReduxState>,
{ mobileAPI }: EpicDependencies
) =>
action$
.ofType(LOADDATA_GET)
.mergeMap((action) => {
return Observable.merge(
mobileAPI
.getJSON('/dummypath/loadData')
.mergeMap((response) => {
return Observable.of<any>(
setLoadData(response)
)
})
)}
)
.catch((error) => {
return Observable.of(errorAction(error))
})
我真的很困惑,为什么对于实际的服务器,流程没有达到史诗般的效果,而对于本地 json 数据和虚拟路径却有效
问题已解决,服务器端存在一些数据映射问题
我正在尝试通过使用 createStandardAction(typesafe-actions) 来分派一个动作,然后它转到 epic(redux-observable) 以进行 api 调用。 奇怪的是它与存根数据完美配合,它完成了流程(即组件->动作->epic->reducer->store)但是在实际使用它时动作不会触发或进入史诗服务器
**Component:-**
export const mapDispatchToProps = (dispatch: Dispatch): ReduxActions => ({
loadTestData: () => dispatch(loadTestData())
})
export default connect(
mapStateToProps,
mapDispatchToProps
)(withNavigation(loadData))
**Action**
import { ActionsUnion, createStandardAction } from 'typesafe-actions'
export const LOADDATA_GET = 'LOADDATA_GET'
export const loadData = createStandardAction(LOADDATA_GET)<void>()
const actions = {
loadData
}
export type AllActions = ActionsUnion<typeof actions>
**Epic**
import { Action, MiddlewareAPI } from 'redux'
import { ActionsObservable, Epic } from 'redux-observable'
import { Observable } from 'rxjs'
import {
LOADDATA_GET
} from './loadData.actions'
export const getloadDataEpic: Epic<Action, ReduxState> = (
action$: ActionsObservable<any>,
store: MiddlewareAPI<any, ReduxState>,
{ mobileAPI }: EpicDependencies
) =>
action$
.ofType(LOADDATA_GET)
.mergeMap((action) => {
return Observable.merge(
mobileAPI
.getJSON('/dummypath/loadData')
.mergeMap((response) => {
return Observable.of<any>(
setLoadData(response)
)
})
)}
)
.catch((error) => {
return Observable.of(errorAction(error))
})
我真的很困惑,为什么对于实际的服务器,流程没有达到史诗般的效果,而对于本地 json 数据和虚拟路径却有效
问题已解决,服务器端存在一些数据映射问题