InversifyJS icon indicating copy to clipboard operation
InversifyJS copied to clipboard

TypeError: undefined is not an object (evaluating 'v.name')

Open Eljoy opened this issue 4 years ago • 3 comments

"inversify": "^5.0.5",
"inversify-inject-decorators": "^3.1.0",

When using lazyInject decorator the following error occurs:

TypeError: undefined is not an object (evaluating 'v.name')

Generating decorators:

import { Container } from 'inversify'
import getDecorators from 'inversify-inject-decorators'
import { ApiClientBuilder } from './common'
import { AppDependencies } from './dependencies'

const appContainer = new Container({ skipBaseClassChecks: true })

AppContainer
  .bind<ApiClientBuilder>(AppDependencies.Common.ApiClientBuilder)
  .to(ApiClientBuilder)

const { lazyInject, lazyInjectNamed, lazyInjectTagged, lazyMultiInject } = getDecorators(appContainer, true)

export { appContainer, lazyInject, lazyInjectNamed, lazyInjectTagged, lazyMultiInject }
AppContainer.bind<AppAuthFeature.AppAuthRepository>(AppDependencies.AppAuth.Repository)
  .to(AppAuthRepository)
  .inSingletonScope()

const a = appContainer.get(AppDependencies.Common.ApiClientBuilder)

export default class ApiClientBuilder {
  private requestInterceptors = []
  private retryConfig = null

  @lazyInject(AppDependencies.AppAuth.Repository)
  private appAuthRepository: AppAuthFeature.AppAuthRepository
}

Eljoy avatar Jun 28 '21 12:06 Eljoy

Looks like you forgot to install or import reflect-metadata package.

AndreiBelokopytov avatar Nov 07 '21 14:11 AndreiBelokopytov

@AndreiBelokopytov nope.

Eljoy avatar Nov 09 '21 09:11 Eljoy

same problem, and i see not working demo: repo: https://github.com/tswistak/react-inversify-inject-decorators-example live: https://codesandbox.io/s/8km1zyvy70

evd1ser avatar Mar 02 '22 14:03 evd1ser