AMcoder - javascript, python, java, html, php, sql

Next.js, Redux հավելվածը հիանալի աշխատում է localhost-ում, բայց չի աշխատում արտադրական սերվերի վրա

Երբ ես կառուցում և գործարկում եմ հավելվածը սերվերի վրա, ես ստանում եմ այս սխալը: Ինչը կարծես կապված է Redux-ի հետ:

{ Անփոփոխ խախտում. Չհաջողվեց գտնել «խանութ» «Connect(Form(LoginForm))» համատեքստում։ Կամ փաթաթեք արմատային բաղադրիչը a-ով, կամ փոխանցեք հատուկ React համատեքստի մատակարարին և համապատասխան React կոնտեքստի սպառողին Connect(Form(LoginForm)) կապի ընտրանքներում:


// createStore.js

import Immutable from 'immutable'
import thunkMiddleware from 'redux-thunk'
import { createLogger } from 'redux-logger'
import { createStore, applyMiddleware, compose } from 'redux'

import config from 'config'
import rootReducer from './reducers/index.js'

function createMiddlewares ({ isServer }) {
  let middlewares = [
    thunkMiddleware
  ]

  if (config.env === 'development' && typeof window !== 'undefined') {
    middlewares.push(createLogger({
      level: 'info',
      collapsed: true,
      stateTransformer: (state) => {
        let newState = {}

        for (let i of Object.keys(state)) {
          if (Immutable.Iterable.isIterable(state[i])) {
            newState[i] = state[i].toJS()
          } else {
            newState[i] = state[i]
          }
        }

        return newState
      }
    }))
  }

  return middlewares
}

function immutableChildren (obj) {
  let state = {}
  Object.keys(obj).forEach((key) => {
    state[key] = Immutable.fromJS(obj[key])
  })
  return state
}

export default (initialState = {}, context) => {
  let { isServer } = context
  let middlewares = createMiddlewares({ isServer })
  let state = immutableChildren(initialState)

  return createStore(
    rootReducer,
    state,
    compose(applyMiddleware(...middlewares))
  )
}

// _app.js

import withRedux from 'next-redux-wrapper'
import { withRouter } from 'next/router'
import { Provider } from 'react-redux'
import App, { Container } from 'next/app'
import { checkForPopup } from "./helpers/popup.js";
import createStore from './redux/createStore.js'

class MyApp extends App {
  static async getInitialProps ({ Component, ctx }) {
    return {
      pageProps: Component.getInitialProps
        ? await Component.getInitialProps(ctx)
        : {}
    }
  }
  render() {
    const { Component, pageProps, store, router } = this.props
    return (
      <Container>
        <Provider store={store}>
          <Component router={router} {...pageProps} />
        </Provider>
      </Container>
    );
  }
  componentDidMount() {
    checkForPopup();
  }
}

export default withRedux(createStore)(
  withRouter(MyApp)
)

  • Բարև Բոզ, խնդրում եմ, լուծում գտա՞ք այս հարցի համար: ես նույն խնդիրն ունեմ 06.09.2019
  • Վերջապես սխալ գտա. երբ ես կառուցում եմ հավելվածը և աշխատում եմ yarn start-ով, ես նույն սխալն ունեմ, բայց երբ ես աշխատում եմ էքսպրես սերվերով, ես որևէ խնդիր չունեմ 09.09.2019
  • Ես նույն խնդիրն ունեմ և կա՞ լուծում: 14.02.2020

Պատասխանները:


1

Հիմնվելով @wamba-kevin մեկնաբանության վրա՝ արտադրության մեջ էքսպրես գործարկելիս սկզբնական սկրիպտը նախածանցում եք NODE_ENV=production-ով: Ես նույնն արեցի հաջորդի հետ և ստացվեց:

29.07.2020
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..