在React Native中以编程方式单击按钮

时间:2018-08-16 09:04:12

标签: react-native

我有一个带有字段testID的按钮

<Button testID='someButton' onPress={someButtonClick}/>

是否可以通过编程方式单击具有给定testID的按钮?

5 个答案:

答案 0 :(得分:2)

这是一个按钮按下另一个按钮的完整实现。

import React from "react"
import { View, Button  } from 'react-native';

const someButtonClick = () => {
    console.log("button was pressed");
}

export class PressButton extends React.Component {
    constructor(props) {
        super(props);
        this.state = {}
    }
    clickButton() {
        this.button.props.onPress();
    }
    render() {
        return (
            <View>
                <Button title="another button" 
                    onPress={() => { this.clickButton()}}
                />
                <Button title="some button" testID='someButton' 
                onPress={() => { someButtonClick() }}
                    ref={(button) => {this.button = button; }}
                />          
            </View>
        )
    }
}

注意以下事项

  • 您需要一个 ref 才能访问该按钮。
  • onPress() 是 React Native 中的正确方法,而不是 click()
  • 事件处理程序在 props 中。

答案 1 :(得分:0)

您需要创建参考。

<Button id={buttonId}
  onClick={e => console.log(e.target)}
  ref={(button) => { this.myButton = button; }}
  // Or something like this:
  ref={component => this.myButton = component}
/>

然后您可以在代码的其他位置访问该引用:

myFunction = () => {
  this.myButton.click()
}

答案 2 :(得分:0)

在渲染代码中尝试一下。

<div className="container" hidden >
   <button onClick={this.submit} ref={(button) => { this.btn = button }} />
</div>

功能上

btn = () => {
   this.btn.click()
}

使用其他代码

this.btn()

答案 3 :(得分:0)

const uploadbtn = useRef();

我隐藏这个按钮是为了以编程方式按下它

 <Button
    ref={uploadbtn}
    buttonStyle={{ width: 0, height: 0, opacity: 0, display: "none" }}
    onPress={pickImage}
  />

然后使用这样的功能按下按钮

  const test = () => {
    uploadbtn.current.handleOnPress();
  };

答案 4 :(得分:-1)

在render()函数中

 <button type='button' onClick="{this.btnClickFunc.bind(this)}">buton</button>

 function btnClickFunc(e){
    var value = e.target.value;

    }

我希望为您服务