React native, redux, redux ORM, expo ... 试图让它全部工作。 __fbbatchedbridge

React native, redux, redux ORM, expo ... trying to make it all work. __fbbatchedbridge

本着 7 月 4 日的精神,我想建立一些东西,因此我不会放弃。我一直在努力让它工作一段时间(不仅仅是今天),坦率地说,我厌倦了原生反应,而且每次我从 npm 中拉出一个包时都会打破这种习惯。

package.json

"dependencies": {
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "expo": "^18.0.4",
    "react": "16.0.0-alpha.12",
    "react-native": "https://github.com/expo/react-native/archive/sdk-18.0.1.tar.gz",
    "react-redux": "^5.0.5",
    "redux": "^3.7.1",
    "redux-orm": "^0.9.4",
    "redux-thunk": "^2.2.0"
  },
  "devDependencies": {
    "babel-preset-react-native": "^2.0.0",
    "redux-orm-proptypes": "^0.1.0"
  }

App.js

import React from 'react';
import { Provider } from 'react-redux';  
import store from './store';

export default class App extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <Text>asdasdasD</Text>
      </Provider>
    );
  }
}

store/index.js

import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import rootReducer from '../reducers/';

const configureStore = createStore(
  rootReducer,
  applyMiddleware(thunkMiddleware)
);

export default configureStore;

reducers/index.js

import { combineReducers } from 'redux';
import { createReducer } from 'redux-orm';
import orm from '../models';

const rootReducerCombined = combineReducers({ orm: createReducer(orm) });

export default rootReducerCombined;

models/index.js

import { ORM } from 'redux-orm';
import Job from './JobModel';  

const orm = new ORM();
orm.register(Job);

export default orm;

其余的内容非常基础。项目是我为了 using ORM in redux.

而想创建的空白 expo 项目

顺便说一句,我更喜欢解决我的问题而不是专注于此,我不禁想我错过了什么?是的,我对 React 和 React Native 很陌生,但为什么每个人都喜欢 React Native?我同意在一个项目中使用它,尽管我不想这样做,现在我大部分时间都在查看 github 问题,以使我的包 json 中的所有内容都能正常工作。每次我说“嘿,这看起来不错,我想使用它”和 运行 npm 安装时,一切都会崩溃……所以,老实说,工作有什么意义?我是不是看错了?

我试用了您的存储库并设法获取了它 运行ning。我做的第一件事就是 运行 exp start --ios 看看是否可行。它向我显示了以下错误:

所以我去了App.js,看到第9行使用了Text但没有导入,所以我从react-native导入它,应用程序渲染了一些文本。

接下来,我查看了日志并看到了这个警告:

  [exp] jest-haste-map: @providesModule naming collision:
  [exp]   Duplicate module name: babel-preset-react-native
  [exp]   Paths: /Users/brent/coding/reduxormexposf/node_modules/react-native/babel-preset/package.json collides with /Users/brent/coding/reduxormexposf/node_modules/react-native/node_modules/babel-preset-react-native/package.json
  [exp]
  [exp] This warning is caused by a @providesModule declaration with the same name across two different files.

然后我检查了 package.json 并看到有一堆 babel 模块,但 babelrc 实际上并没有使用任何这些模块——它只使用了 babel-preset-expo。所以我删除了所有这些插件,关闭了打包程序,然后再次 运行 exp start --ios 然后警告消失了。

我不确定您是如何进入 __fbBatchedBridge is undefined 错误状态的,就像在您的 post 中一样,有多种可能发生的情况。错误信息的描述性不强,应该改进。打包程序很可能不是 运行ning (exp start)。如果问题仍然存在,请告诉我,但其他问题应该已解决。我提交了一个拉取请求,其中包含我讨论的更改:https://github.com/ODelibalta/reduxormexposf/pull/1