【问题标题】:Redux reducer state is undefined at productionRedux reducer 状态在生产中未定义
【发布时间】:2017-12-05 21:17:42
【问题描述】:

我有 react-redux 应用程序在开发过程中可以正常工作,没有错误,但在生产中,它不起作用。

我已经完全删除了 redux-dev-tolls 等,但没有机会。

我收到此错误;

TypeError: Cannot read property 'isLoading' of undefined

我在这样的 react 渲染函数中声明了 signInStatusisLoading

const {signin, signInStatus} = this.props
const {
    isLoading,
    isSucceeded,
    idErrorMessage,
    passwordErrorMessage,
    generalErrorMessage
} = signInStatus;

连接;

const reduxInjected = connect(({signInStatus}) => ({signInStatus}), {
    signin,
    signInResetForm,
    signinStorage
})(LoginEmailPasswordForm);
....

减速机;

const signInStatus = (state = {isLoading: false, isSucceeded: false}, action) => {
    switch (action.type) {
        // Hot Module Replacement
        case EPIC_END:
            return {isLoading: false, isSucceeded: false};

        case ...:
            return {...state, isLoading: false, isSucceeded: false};

        case ...:
        case ...:
        case ...:
            return {isLoading: true, isSucceeded: false};

        case ...:
        case ...:
            const {accessToken, idToken, expiresIn} = action;
            let expiresAt = JSON.stringify((action.expiresIn * 1000) + new Date().getTime());
            return {isSucceeded: true, token: {accessToken, idToken, expiresAt}};

        case ...:
            return {isSucceeded: true, isLoggedIn: true, token: action.token, user: action.user};

        case ...:
            return {}

        case ...:
            const newState = {}
            const {error} = action;
            ...
            return {...newState, isLoading: false, isSucceeded: false};

        case ...:
            return {...state, isLoggedIn: true, user: action}

        case ...:
            return {}

        default:
            return {...state}
    }
}

你可以看到 signInStatus 有初始状态,但它说它是undefined

可能是什么原因?

谢谢。

【问题讨论】:

  • 告诉我们你在哪里结合减速器/设置商店
  • 或者你没有正确注入提供者

标签: redux react-redux


【解决方案1】:

关于 UglifyJsPlugin

plugins: [
    // Don't Minify JS, redux doesn't like it
    // new UglifyJsPlugin({
    //     sourceMap: true,
    //     compress: false,
    // }),
],

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 2020-06-19
    • 2021-01-08
    • 2016-12-22
    • 2019-05-24
    • 2022-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多