React Native 将 Component/Object 属性传递给 OnPress 函数

Posted

技术标签:

【中文标题】React Native 将 Component/Object 属性传递给 OnPress 函数【英文标题】:React Native passing Component/Object property to OnPress function 【发布时间】:2018-05-07 21:59:55 【问题描述】:

刚开始学习 React Native 并遇到一些基本问题。 我正在使用 React-native-draggable 组件,我想使用元素的位置来更新当前场景的状态。

<Draggable renderColor='white' offsetX=0 renderSize=48 reverse=false pressDragRelease=PASS X,Y POSITION TO A FUNCTION HERE?>

对于我的生活,我无法让它工作;我真的只想得到释放的 Draggable 元素的 x 和 y 位置,并在 this.setState(...) 中使用它。我试过绑定,但实际上我是一个完整的初学者,现在甚至不知道在哪里看。任何指针将不胜感激。

【问题讨论】:

【参考方案1】:

目前这是不可能的。快速浏览一下模块源码,可以看到herepressDragRelease函数是在没有任何参数的情况下调用的。

onPanResponderRelease: (e, gestureState) => 
    if(pressDragRelease)
        pressDragRelease();
[...]

我们在这里想要的是从gestureState 中获取 x 和 y。 我们可以将onPanResponderRelease 参数传递给pressDragRelease

onPanResponderRelease: (e, gestureState) => 
    if(pressDragRelease)
        pressDragRelease(e, gestureState);
[...]

随意分叉并提交拉取请求!

更新

我在这里做了一个 PR:https://github.com/tongyy/react-native-draggable/pull/7

更新 2

PR 已合并,新版本的模块已发布到 npm!

npm install react-native-draggable@1.0.8

【讨论】:

这太棒了。非常感谢你!从 StackOvervlow 问题到合并模块更新,不到 5 小时……太棒了。再次感谢! @kytwb 我尝试了同样的事情,但是我没有得到这个 X 和 Y,我只得到了接触点,而不是 X 和 Y。你能帮我做同样的事情吗? @SAMIRRATHOD 您使用的是什么版本的模块?你能分享一个复制的链接吗?

以上是关于React Native 将 Component/Object 属性传递给 OnPress 函数的主要内容,如果未能解决你的问题,请参考以下文章

React-Native - 在Component和Class之间传递数据

React Native + react-native-router-flux:<Scene key='modal' component=Modal/> 有啥作用?

React Native 中 component 生命周期

React Native 中 component 生命周期

React Native——PureComponent VS Component

react-native-table-component 冻结可滚动表中的第一列和第一行