React native 将侦听器添加到差异钳位,反应为本机
正在尝试将侦听器添加到react native中的React native 将侦听器添加到差异钳位,反应为本机,react-native,listener,clamp,React Native,Listener,Clamp,正在尝试将侦听器添加到react native中的动画差异夹紧,以允许更改两个非动画属性 它最初执行正确,但当屏幕滚动超过其max属性时,会抛出“非法节点”错误 “设置为动画.DiffClamp的输入的非法节点ID” 关于这方面的大多数文章已经过时好几年了,建议您不能将侦听器添加到diff-clamp中。但是,它确实可以工作(现在?),但只有在构造函数中声明时才能工作 并非所有情况都允许它出现在上面,因为它不在渲染内部时不会响应状态更改。内部渲染在达到最大值并抛出上面的错误之前执行良好 Rend
动画差异夹紧
,以允许更改两个非动画属性
它最初执行正确,但当屏幕滚动超过其max属性时,会抛出“非法节点”错误
“设置为动画.DiffClamp的输入的非法节点ID”
关于这方面的大多数文章已经过时好几年了,建议您不能将侦听器添加到diff-clamp中。但是,它确实可以工作(现在?),但只有在构造函数中声明时才能工作
并非所有情况都允许它出现在上面,因为它不在渲染内部时不会响应状态更改。内部渲染在达到最大值并抛出上面的错误之前执行良好
Render () {
const yHeader = Animated.diffClamp(
this.props._yScroll.interpolate({
inputRange: [0, 48],
outputRange: [0, -48],
extrapolateLeft: 'clamp',
}),
-48, 0)
yHeader.addListener(
Animated.event([{value: this.value.ySearch}], {useNativeDriver: false})
)
// this.value.search has been declared in the constructor as an Animated value and is waiting to receive the props. This is not the problem!
}
如果抛出错误时仍在滚动,则可以看到,如果在console.log中输出其当前值,则它将继续正确执行,尽管“非法”错误完全阻塞了屏幕
- 是否可以将侦听器添加到差异钳位
- 如果不是,那么如果DiffClamp在构造函数中,它为什么工作
- 假设第一个问题是否定的,而我又没有在什么地方把事情搞砸,这里有解决办法吗
const yHeader = Animated.diffClamp(
this.props._yScroll.interpolate({
inputRange: [0, 48],
outputRange: [0, -48],
extrapolateLeft: 'clamp',
}),
-48, 0)
const yHeader_legalised = yHeader.interpolate({
inputRange: [0, 1],
outputRange: [0, 1],
})
yHeader_legalised.addListener(
Animated.event([{value: this.value.ySearch}], {useNativeDriver: false})
)