Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
Javascript 作为类对象传递给函数的字符串变量_Javascript_React Native - Fatal编程技术网

Javascript 作为类对象传递给函数的字符串变量

Javascript 作为类对象传递给函数的字符串变量,javascript,react-native,Javascript,React Native,在我的react原生应用程序中,我有一个字典,我使用this.setState({keys:Object.keys(dict)})将其中的键存储在一个数组中。我尝试迭代并呈现这些键,单击这些键时,将键名传递给函数,如下所示: this.state.keys.map((key, index) => { return ( <View key={index}> <TouchableOpacity onPress={key => this.doSom

在我的react原生应用程序中,我有一个字典,我使用
this.setState({keys:Object.keys(dict)})
将其中的键存储在一个数组中。我尝试迭代并呈现这些键,单击这些键时,将键名传递给函数,如下所示:

this.state.keys.map((key, index) => {
  return (
    <View key={index}>
      <TouchableOpacity onPress={key => this.doSomething(key)}>
        <View>
          <Text>{key}</Text>
        </View>
      </TouchableOpacity>
    </View>
  )

为什么字符串作为类对象传递给onPress函数?

React将事件作为第一个参数传递给函数。当您编写
{key=>
时,您正在创建一个名为
key
的新变量,它实际上是事件,而不是预期的字符串。您可以只放空括号(或将参数命名为
key
以外的任何名称),它应该按照您的预期工作。例如:

onPress={()=>this.doSomething(key)}`

React将事件作为第一个参数传递给函数。当您编写
{key=>
时,您正在创建一个名为
key
的新变量,该变量实际上是事件,而不是预期的字符串。您可以只放置空括号(或将参数命名为
key
以外的任何名称)它应该按照您的预期工作。例如:

onPress={()=>this.doSomething(key)}`

此按键按下是一个合成事件,您应该为evt重命名,然后传递空括号,然后正常执行其余操作此按键按下是一个合成事件,您应该为evt重命名,然后传递空括号,然后正常执行其余操作
 Class {
    "_dispatchInstances": null,
    "_dispatchListeners": null,
    "_targetInst": FiberNode {
      "tag": 5,
      "key": null,
      "type": "RCTView",
    },
    "bubbles": undefined,
    "cancelable": undefined,
    "currentTarget": null,
    "defaultPrevented": undefined,
    "dispatchConfig": Object {
      "dependencies": Array [],
      "registrationName": "onResponderGrant",
    },
    "eventPhase": undefined,
    "isDefaultPrevented": [Function functionThatReturnsFalse],
    "isPersistent": [Function functionThatReturnsTrue],
    "isPropagationStopped": [Function functionThatReturnsFalse],
    "isTrusted": undefined,
    "nativeEvent": Object {
      "changedTouches": Array [
        [Circular],
      ],
      "identifier": 0,
      "locationX": 4.013671875,
      "locationY": 11.8740234375,
      "pageX": 169.013671875,
      "pageY": 275.8740234375,
      "target": 207,
      "timestamp": 30722773,
      "touches": Array [
        [Circular],
      ],
    },
    "target": 207,
    "timeStamp": 1586871822926,
    "touchHistory": Object {
      "indexOfSingleActiveTouch": 0,
      "mostRecentTimeStamp": 30722855,
      "numberActiveTouches": 0,
      "touchBank": Array [
        Object {
          "currentPageX": 169.1015625,
          "currentPageY": 277.138671875,
          "currentTimeStamp": 30722855,
          "previousPageX": 169.1015625,
          "previousPageY": 277.138671875,
          "previousTimeStamp": 30722853,
          "startPageX": 169.013671875,
          "startPageY": 275.8740234375,
          "startTimeStamp": 30722773,
          "touchActive": false,
        },
      ],
    },
    "type": undefined,
  },