类似于#1693。 在 React Native 0.19.0 上使用 Chrome 调试的Touchable
组件似乎存在问题。
Attempted to transition from state `RESPONDER_INACTIVE_PRESS_IN` to `RESPONDER_ACTIVE_LONG_PRESS_IN`, which is not supported.
This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.
stack:
reactConsoleError @ ExceptionsManager.js:76
console.error @ YellowBox.js:49
TouchableMixin._handleLongDelay @ Touchable.js:575
JSTimersExecution.callbacks.(anonymous function) @ JSTimers.js:47
JSTimersExecution.callTimer @ JSTimersExecution.js:69
JSTimersExecution.callTimers @ JSTimersExecution.js:92
__callFunction @ MessageQueue.js:183
(anonymous function) @ MessageQueue.js:87
guard @ MessageQueue.js:41
callFunctionReturnFlushedQueue @ MessageQueue.js:86
onmessage @ debuggerWorker.js:39
产生此错误的代码来自使用 TouchHighlight 组件的新启动应用程序:
class App extends Component {
constructor() {
super()
this.state = {
testText: ''+Math.random()
}
}
_updateTouch(e) {
this.setState({testText: ''+Math.random()})
}
render() {
return (
<View style={styles.container}>
<Text>
{this.state.testText}
</Text>
<TouchableHighlight onPress={this._updateTouch.bind(this)}>
<Image
style={width: 100, height: 100}
source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}
/>
</TouchableHighlight>
</View>
);
}
}
PS有没有更好的方法来复制堆栈跟踪? 我只是从 Chrome 开发工具控制台复制
嘿 Dyscrete,感谢您报告此问题!
正如您可能听说的那样,React Native 变得非常流行,而事实是我们对围绕它的活动有些不知所措。 有太多问题需要我们妥善管理。
react-native
在StackOverflow上询问,或者要获得更多实时交互,请在Discord上询问#react 原生频道。在 iPhone6 (9.1) 上测试时出现同样的错误
这个问题与#1693 有什么不同? 一般来说,这个问题似乎是一样的。 我们可以关闭它并在那里继续进一步调查,因为它有更多细节吗?
+1
我也遇到这个问题,经常切换导航器
将关闭它,因为@askday还在#1693 中提供了更好的重现。 如果 OP 提到了不同的东西,请重新打开。
对我来说同样的错误。
反应 0.31
铬调试。
正常使用是没有问题的。
console.error: “试图从状态RESPONDER_INACTIVE_PRESS_IN
到RESPONDER_ACTIVE_LONG_PRESS_IN
,这是不受支持的。这很可能是由于Touchable.longPressDelayTimeout
没有被取消。
Object.console.error
YellowBox.js:60
构造函数._handleLongDelay
Touchable.js:595
JSTimersExecution.callbacks.(匿名
index.ios.bundle?platform=ios&dev=true&minify= false:8476 :13
对象调用定时器
JSTimersExecution.js:84
JSTimersExecution.js:119
对象调用定时器
JSTimersExecution.js:119
MessageQueue.__callFunction
MessageQueue.js:204
MessageQueue.js:95
+1
+1
+1
+1
:+1:
👍
+1
+1
+1
+1
+1
+1
+1
+1
+1
我也有这个错误,但仅限于Android。 IOS 正在按预期工作。
+1
+1
+1
+1
+1
+1
+1
+1 相同的错误仅在 Android 上,但 iOS 工作正常。
+1 与@binzailani3136相同
+1
恭喜此bug当选 RN0.39版 最臭名昭著的issue之一
+1
+1
+1
+1
+1
+1
+1
+1
伙计们,你的 +1 没有帮助,这是在 #1693
+1
+1
+1
+1
+1
+1
我看到很多人似乎总是有这个问题,这个问题已经关闭,所以我在这里创建一个新的:#11989
+1
+1
@magrinj ,为什么这个问题在这么多人(包括我刚刚在 RN 0.37 上)继续遇到此错误时关闭? 应用程序方面是否有权宜之计?
@fungilation可能是我开新票搞错了,因为这个是开票的,讨论同样的问题:#1693
添加视图后修复
<TouchableNativeFeedback>
<View> // <= here
<Text style={css.item}>{rowData.title + rowData.id}</Text>
</View>
</TouchableNativeFeedback>
@Yadro ,你的意思是插入额外的 View 从应用程序端修复这个问题,或者 RN 可以通过这样做在内部修复它?
嗯,我的英语不好,但插入额外的视图可以解决这个问题
行。 如果我仍然通过其他视图遇到此问题,我会报告
+1
我只有在远程调试时才会得到这个。 这通常不会发生。 注册护士 .41.2。 Windows 10. 安卓
+1
@ckwong90 ,这里有些,只有在远程调试时才会出现
注册护士 .41.2。 macOS Sierra 10.12.3
同上,Android 6.0,最新RN,远程调试
+1
+1
+1
我在 Chrome 中遇到react-native-button
和调试模型的这个问题
我通过用 View 包装 Button 组件解决了这个问题。
+1
我已经将组件包装在一个视图中,但是出现了这个错误。 之后,我的应用程序中的任何 TouchableHighlight 都会引发此错误。 通过清除设置中的应用程序数据解决了它(临时?)。 问题出现在 Android、Emulator、Win10、RN 0.42.3 中,“Debug JS Remotely”没有“Hot Reloading”。
同样在这里
+1
+1 在我切换导航器时发生
+1
得到了同样的错误。 从 XCode 重建应用程序为我解决了这个问题。
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
这方面有什么进展吗?
远程调试时会出现此问题。
任何人?!
开发 3 周后,当我使用 nativebase Fab 组件时,突然出现此问题。 希望F8能解决这个问题
有同样的问题,
+1
+1
+1
+1
render() {
let {onNavigateToOfferScreen, navigation} = this.props;
let {dataSource} = this.state;
return (
<ListView style={styles.container} dataSource={dataSource} renderRow={offer => (
<TouchableHighlight onPress={() => onNavigateToOfferScreen(offer)}>
<View style={styles.row} elevation={2}>
<Text style={styles.businessName}>{offer.name}</Text>
</View>
</TouchableHighlight>
)}/>
);
}
+1
一样的东西
+1
+1
+1
+1
+1 .... 在我开始使用 fetch 后会弹出这个错误...
同样的问题附加视图不起作用
+1
+1
计数++
+1
停止 +1 垃圾邮件。 如果您看到相同的内容,只需给原始帖子或任何评论点赞👍🏼。
@杀菌👍
+1
这仅在远程调试时发生,我通过执行以下操作临时修复了此问题:
注意:这确实是一个临时解决方案。 它仍然时不时地反复弹出。
@Jarrio谢谢
@lukemiles 的想法?
+1
+1
+1
@Jarrio的 tmp 解决方案现在有效
+1
+1
+1
48 +1,
+1
48 + 1
仅当启用远程 js 调试时才会出现问题......在正常模式下它工作正常。
49.3+ 1
+1
+1
+1
+1
我将TouchableHighlight
更改TouchableOpacity
,这不会发生
RN.50 +1
@Jarrio仍然立即在 android 上抛出错误
+1 0.47
注册护士@0.51 +1
+1
请停止+1 !!!
呃……加1,然后
+1
+1
+1 为 0.48.3
+1 在 0.51.0
+1 很好,喜欢。 发生 0.50
+1
+1
+1
使用本机 0.51.0
我通过在 Android 中手动设置设备时间来“修复”这个问题。 确保新时间与您的计算机时间相同(目标是下一分钟更改),在计算机时间将更改为下一分钟的同一秒确认时间更改。
+1
+1
+1
+1
+1
+1
我的解决方案是
+1
在 LibrariesComponentsTouchableTouchableHighlight.js 中替换
touchableGetLongPressDelayMS: function() {
返回 this.props.delayLongPress;
},
和
touchableGetLongPressDelayMS: function() {
返回 this.props.delayLongPress === 0 ? 0 :
this.props.delayLongPress || 500;
},
它为我解决了问题。
+1
+1
我在 Android 上遇到了同样的问题
a) 我的手机通过 USB 连接到我的电脑
b) 我通过网络使用了远程调试
断开 USB 连接解决了该问题。 不过不知道有没有因果关系。
编辑:在遇到异步超时的其他问题后,我通过以下方式检查了 PC 和 Android 设备上的当前时间
adb shell date && date
。
有 5 秒的差异。 人们可能会猜测,在远程调试时,RN 处理当前时间的方式存在不一致。
通过
curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g'
在我的案例中,我确定了罪魁祸首:我的 Android 设备的系统时间关闭了 5 秒。 重新启动 Android 设备修复了差异。
我刚刚验证了来自 Android 设备和我的 Mac 的时间: adb shell date && date
。 相差超过2分钟。 然后我在我的 Android 设备上激活了自动时间设置并再次运行相同的命令,瞧时间同步了,但时区不一样,即使在(Android 设备和 Mac)上时区设置都是自动的。 所以我在我的Android设备上停用了自动时区设置并手动将其设置为相应的错误消失了。
+1
+1
安卓设备自动时间设置和电脑自动时间设置解决了问题
在 Ubuntu 上,我通过执行以下操作将系统时间与当前 ADB 时间同步:
sudo date +%T -s `adb shell date +%T`
+1
+1
由于重复 +1 评论而锁定。 很久以前@Larry-Liu2016在这里发布了一个解决方案。 总之,检查设备上的时钟。
最有用的评论
添加视图后修复