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
本着 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