React-Native Android Undefined не является объектом (оценка «root._»)

avatar
Lilp
8 апреля 2018 в 10:43
384
0
1

В данный момент у меня проблемы с запуском моего приложения, особенно на Android. Когда я запускаю react-native run-android и запускаю приложение (с предварительным запуском react-native start или без него), я получаю следующую ошибку: Undefined не является объектом (оценка «root._»). Затем я не могу запустить отладчик, потому что это дает мне тайм-аут при подключении к ошибке удаленного отладчика.

Error shown

Debugger error

Мой процесс загрузки приложения выглядит следующим образом: index.js:

import { AppRegistry } from 'react-native'
import setup from './src/setup'

AppRegistry.registerComponent('appname', setup)

setup.js:

import React, { Component } from 'react'
import { View } from 'react-native'
import { Provider } from 'react-redux'
import { AsyncStorage } from 'react-native'
import { persistStore } from 'redux-persist';
import configureStore from './store/configureStore'

import Spinner from './components/common/Spinner'
import App from './App'

import styles from './styles/setup'

export class Root extends Component {

  constructor() {
    super()
    this.state = {
      loaded: false,
      // store: configureStore(this.onStoreLoaded.bind(this))
    }
  }

  onStoreLoaded() {
    this.setState({
      loaded: true,
    })
  }

  render() {
    return (

    <View style={styles.wrapper}>
      <Spinner/>
    </View>
  )
  }
}

export default function setup() {
  return Root
}

На данный момент я закомментировал загрузку хранилища, потому что это стало очевидным после добавления избыточности, но хранилище конфигурации выглядит следующим образом:

import {applyMiddleware, createStore, compose} from 'redux'
import {persistStore, autoRehydrate} from 'redux-persist';
import { AsyncStorage } from 'react-native'
import thunk from 'redux-thunk'

import reducers from '../reducers'

const middlewares = [
  thunk
]

const store = createStore(
  reducers,
  undefined,
  compose(
    applyMiddleware(...middlewares),
    autoRehydrate()
  )
)

export default function(callback) {
  persistStore(store, {
    blacklist: [],
    storage: AsyncStorage
  }, callback)

  return store
}

Я использую react-native 0.53.0 с редукционной версией 3.7.2 и react-redux 5.0.6. Я попытался повторно связать код следующим образом:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Я также пробовал: adb reverse tcp:8081 tcp:8081

Я также обновил инструменты сборки, gradle и т. д. в студии Android, и все синхронизируется нормально.

Источник

Ответы (0)