Я пытаюсь обновить положение карты в родительском компоненте в ответной реакции. Мой родительский компонент имеет следующее:
class JarList extends React.Component {
state = {
position: { width: cardWidth, height: cardHeight, x: initialCardX, y: initialCardY },
jarSelected: false,
};
updateScreenshotPosition(position) {
springTransition();
this.setState({ position, jarSelected: true });
}
handleScreenShotPosition(position) {
updateScreenshotPosition(position);
}
И в функции возврата я передаю дочернему элементу:
<Screenshot
handleScreenShotPosition={this.handleScreenShotPosition}
position={state.position}
velocityY={this.velocityY}
movingState={this.gestureState}
jarSelected={state.jarSelected}
/>
Использование PanGestureHandler из реаги- Обработчик native-жеста дочерний компонент выглядит следующим образом в функции retrun:
<PanGestureHandler
onGestureEvent={e => {
let newPosition = {
width: position.width,
height: position.height,
x: position.x + e.nativeEvent.translationX,
y: position.y + e.nativeEvent.translationY,
};
handleScreenShotPosition(newPosition);
}}
>
<Animated.View
style={{
position: 'absolute',
width: jarSelected ? width : this.animatedWidth,
height: jarSelected ? height : this.animatedHeight,
backgroundColor: 'red',
left: jarSelected ? x : this.animatedX,
top: y,
}}
></Animated.View>
</PanGestureHandler>
Поэтому проблема, с которой я сталкиваюсь, заключается в том, что приложение вылетает, говоря, что переменная updateScreenshotPosition не определена; Я действительно не знаю, почему состояние родительского ребенка не меняется.