process.nextTick 不是函数(React native、ddp、meteor)
process.nextTick is not a function (React native, ddp, meteor)
在 React Native 上,我正在尝试使用 'ddp-client' 节点库连接到流星服务器。连接成功后,我在客户端收到以下错误:
2016-01-17 16:14:15.992 [trace][tid:com.facebook.React.JavaScript] ddp message: {"msg":"connected","session":"PGLBqgvoeuXgBtke2"}
2016-01-17 16:14:16.007 [warn][tid:com.facebook.React.JavaScript] process.nextTick is not a function. (In 'process.nextTick(function(_this){
return function(){
return _this._flush();};}(
this))', 'process.nextTick' is undefined)
2016-01-17 16:14:16.008 [error][tid:com.facebook.React.RCTExceptionsManagerQueue] Unhandled JS Exception: process.nextTick is not a function. (In 'process.nextTick(function(_this){
return function(){
return _this._flush();};}(
this))', 'process.nextTick' is undefined)
process.nextTick
在 React Native 上不存在,所以我们必须填充它。这就像 process.nextTick = setImmediate
.
一样简单
您需要确保在根组件文件中执行此操作(例如 index.ios.js)
希望对您有所帮助!
您也可以使用 react-native-meteor 包来集成 React Native Meteor。
https://www.npmjs.com/package/react-native-meteor 检查此 link 以获取文档。
我遇到过同样的问题,但是@Spencer Carli的回答并不完美,在调试模式下,shimming nextTick不仅没有必要(调试时js在v8中运行),它还会使你的应用程序失败连接开发服务器(我不知道为什么,但确实如此)。所以比较合适的答案是:
if (!__DEV__) {
global.process.nextTick = setImmediate
}
在 React Native 上,我正在尝试使用 'ddp-client' 节点库连接到流星服务器。连接成功后,我在客户端收到以下错误:
2016-01-17 16:14:15.992 [trace][tid:com.facebook.React.JavaScript] ddp message: {"msg":"connected","session":"PGLBqgvoeuXgBtke2"}
2016-01-17 16:14:16.007 [warn][tid:com.facebook.React.JavaScript] process.nextTick is not a function. (In 'process.nextTick(function(_this){
return function(){
return _this._flush();};}(
this))', 'process.nextTick' is undefined)
2016-01-17 16:14:16.008 [error][tid:com.facebook.React.RCTExceptionsManagerQueue] Unhandled JS Exception: process.nextTick is not a function. (In 'process.nextTick(function(_this){
return function(){
return _this._flush();};}(
this))', 'process.nextTick' is undefined)
process.nextTick
在 React Native 上不存在,所以我们必须填充它。这就像 process.nextTick = setImmediate
.
您需要确保在根组件文件中执行此操作(例如 index.ios.js)
希望对您有所帮助!
您也可以使用 react-native-meteor 包来集成 React Native Meteor。 https://www.npmjs.com/package/react-native-meteor 检查此 link 以获取文档。
我遇到过同样的问题,但是@Spencer Carli的回答并不完美,在调试模式下,shimming nextTick不仅没有必要(调试时js在v8中运行),它还会使你的应用程序失败连接开发服务器(我不知道为什么,但确实如此)。所以比较合适的答案是:
if (!__DEV__) {
global.process.nextTick = setImmediate
}