如何在用户进入页面时自动点击按钮
How to click automatically in a button when user coming to page
import React from "react";
checkClick = () => {
console.log("clicked");
};
class Test extends React.Component {
render() {
return (
<div>
<button id="button" onClick={this.checkClick}>
click
</button>
</div>
);
}
}
export default Test;
如何在用户进入页面时自动点击按钮?
这里我想自动点击上面的按钮
我试过:
document.getElementById("button").click()
这不起作用。
为此使用componentDidMount
,
import React from 'react';
class Test extends React.Component {
componentDidMount(){
this.checkClick();
}
checkClick () {
console.log("clicked");
}
render() {
return (
<div>
</div>
)
}
}
export default Test;
您可以使用 ref 为您提供 dom 元素的实例,您可以在其中调用 click()
方法。
如果您不熟悉 refs,可以在这里阅读所有相关内容:https://reactjs.org/docs/refs-and-the-dom.html
import React, { Component } from 'react'
class Test extends Component {
constructor(props) {
super(props)
this.button = React.createRef()
}
componentDidMount() {
this.button.current.click()
}
checkClick() {
console.log('clicked')
}
render() {
return (
<div>
<button ref={this.button} onClick={this.checkClick}>Click me!</button>
</div>
)
}
}
export default Test
首先,我不建议你在 React 组件之外创建函数 class。在你的情况下,你不能像 this.checkClick
那样使用它,因为 checkClick
函数是在你的 React 组件之外声明的。
第二件事,在 React 内部使用真正的 DOM 基本上可以说是反模式。 React 提供了 virtual DOM 并与之一起工作,因此,我建议您了解 React ref API.
对于您的情况,您可以使用生命周期 componentDidMount()
方法。当组件完成第一次渲染时,它被调用(当然是自动的),所以,所有的引用都在这里可用,所有的子元素都被挂载并出现在 DOM.
import React from "react"
export default class Test extends React.Component {
componentDidMount() {
document.getElementById("button").click()
}
checkClick() {
console.log("clicked!")
}
render() {
return (
<div>
<button id="button" onClick={this.checkClick}>click</button>
</div>
)
}
}
或者,使用 refs
import React from "react"
export default class Test extends React.Component {
componentDidMount() {
this.button.click()
}
checkClick() {
console.log("clicked!")
}
render() {
return (
<div>
<button ref={button => this.button = button} onClick={this.checkClick}>click</button>
</div>
)
}
}
import React from "react";
checkClick = () => {
console.log("clicked");
};
class Test extends React.Component {
render() {
return (
<div>
<button id="button" onClick={this.checkClick}>
click
</button>
</div>
);
}
}
export default Test;
如何在用户进入页面时自动点击按钮?
这里我想自动点击上面的按钮
我试过:
document.getElementById("button").click()
这不起作用。
为此使用componentDidMount
,
import React from 'react';
class Test extends React.Component {
componentDidMount(){
this.checkClick();
}
checkClick () {
console.log("clicked");
}
render() {
return (
<div>
</div>
)
}
}
export default Test;
您可以使用 ref 为您提供 dom 元素的实例,您可以在其中调用 click()
方法。
如果您不熟悉 refs,可以在这里阅读所有相关内容:https://reactjs.org/docs/refs-and-the-dom.html
import React, { Component } from 'react'
class Test extends Component {
constructor(props) {
super(props)
this.button = React.createRef()
}
componentDidMount() {
this.button.current.click()
}
checkClick() {
console.log('clicked')
}
render() {
return (
<div>
<button ref={this.button} onClick={this.checkClick}>Click me!</button>
</div>
)
}
}
export default Test
首先,我不建议你在 React 组件之外创建函数 class。在你的情况下,你不能像 this.checkClick
那样使用它,因为 checkClick
函数是在你的 React 组件之外声明的。
第二件事,在 React 内部使用真正的 DOM 基本上可以说是反模式。 React 提供了 virtual DOM 并与之一起工作,因此,我建议您了解 React ref API.
对于您的情况,您可以使用生命周期 componentDidMount()
方法。当组件完成第一次渲染时,它被调用(当然是自动的),所以,所有的引用都在这里可用,所有的子元素都被挂载并出现在 DOM.
import React from "react"
export default class Test extends React.Component {
componentDidMount() {
document.getElementById("button").click()
}
checkClick() {
console.log("clicked!")
}
render() {
return (
<div>
<button id="button" onClick={this.checkClick}>click</button>
</div>
)
}
}
或者,使用 refs
import React from "react"
export default class Test extends React.Component {
componentDidMount() {
this.button.click()
}
checkClick() {
console.log("clicked!")
}
render() {
return (
<div>
<button ref={button => this.button = button} onClick={this.checkClick}>click</button>
</div>
)
}
}