Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 如何在onPress中获取元素键而不在React Native中绑定_React Native - Fatal编程技术网

React native 如何在onPress中获取元素键而不在React Native中绑定

React native 如何在onPress中获取元素键而不在React Native中绑定,react-native,React Native,我们已经知道,AirBnB样式指南不鼓励在渲染函数()中使用.bind()。如前所述: JSX道具中的绑定调用或箭头函数将在每个渲染上创建一个全新的函数。这对性能不利,因为它将导致垃圾收集器被调用的方式超出了必要的范围 这就是我们过去所做的,将param传递到bind中 renderSingleItem=({item})=> 返回 这似乎是唯一的方法,因为React Native中onPress的参数不像ReactJS那样包含目标对象 ReactJS: typeof event.taget===

我们已经知道,AirBnB样式指南不鼓励在渲染函数()中使用.bind()。如前所述:

JSX道具中的绑定调用或箭头函数将在每个渲染上创建一个全新的函数。这对性能不利,因为它将导致垃圾收集器被调用的方式超出了必要的范围

这就是我们过去所做的,将param传递到bind中

renderSingleItem=({item})=>
返回

这似乎是唯一的方法,因为React Native中onPress的参数不像ReactJS那样包含目标对象

ReactJS:

typeof event.taget==='object'

反应本机:

typeof event.taget==“number”


有更好的方法吗?

您可以随时使用记忆化并执行以下操作

<TouchableOpacity key={article.id} onPress={this.goToArticle(article.id)}>
你可以用

renderSingleItem = ({item}) => <TouchableOpacity onPress={() =>
  this.func(item.id)
}>
renderSingleItem=({item})=>
this.func(item.id)
}>
我考虑过使用,但想找到一种更自然的方式
renderSingleItem = ({item}) => <TouchableOpacity onPress={() =>
  this.func(item.id)
}>