【问题标题】:touchableopacity onpress get text valuetouchableopacity onpress 获取文本值
【发布时间】:2020-10-26 01:19:08
【问题描述】:

我有一个 touchableopacity 组件,我需要在按下时获取其中组件的文本值。

<TouchableOpacity onPress={validateAnswer} style={cssstyles2}>
                            <Text>{a}</Text>
                        </TouchableOpacity>


const validateAnswer = (val) => {
        console.log('validateanswer - ', val)
    }

不确定如何获取文本值。

【问题讨论】:

  • 它存储在a 变量中。您能否为您的问题添加更多上下文?
  • {a} 是一个有值的变量。我需要获取该变量的值。
  • 你在哪里定义a?如果是状态,可以直接访问。

标签: react-native


【解决方案1】:

无论您需要什么作为值,都需要以这种方式传递。无论您从哪里获得价值

<TouchableOpacity onPress={() => validateAnswer(val)} style={cssstyles2}>                            
    <Text>{a}</Text>
</TouchableOpacity>

【讨论】:

【解决方案2】:

&lt;TouchableOpacity onPress={()=&gt;this.setState({val:'aa'}) {this.state.val} 老实说,您的问题很简单,希望我的回答对您有所帮助。

【讨论】:

    【解决方案3】:
    <TouchableOpacity onPress={()=> validateAnswer(a)} style={cssstyles2}>
         <Text>
           {a}
         </Text>
    </TouchableOpacity>
    
    const validateAnswer = (val) => {
          console.log('validateanswer - ', val)
    }
    

    我不确定你为什么会感到困惑,因为你有变量 what 在文本视图中,只需传递它并在 validateAnswer 函数中将其作为参数访问。

    【讨论】:

      【解决方案4】:

      简短的解释是因为 JavaScript 上下文。快速的答案是使用 onPress={() => validateAnswer(a)}

      <TouchableOpacity onPress={() => validateAnswer(a)} style={cssstyles2}>
        <Text>{a}</Text>
      </TouchableOpacity>
      

      更长的答案是 onPress={validateAnswer} 是以下的简写:

      <TouchableOpacity onPress={(event) => validateAnswer(event)} style={cssstyles2}>
        <Text>{a}</Text>
      </TouchableOpacity>
      

      传递给 onPress 函数的事件是一个 React 合成事件。它封装了通常会传递到按钮事件中的本机浏览器按钮事件。

      因此您可以访问 TouchableEvent 中的变量“a”,您只需将其显式传递给 validateAnswer 函数。如果您错误地认为尝试这样做:onPress={(a) => validateAnswer(a)} 那么您会将 React 合成事件传递给函数。

      【讨论】:

        猜你喜欢
        • 2019-01-11
        • 2020-11-23
        • 1970-01-01
        • 1970-01-01
        • 2018-06-22
        • 2019-01-23
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多