按钮上的方法

Method on button

我试图在按下 link 时调用一个方法,并且该方法本身有一个参数,问题是无论我是否按下 link 都会调用该方法

代码如下:

  <Link onClick={this.goToShow(show1.name)}>{show1.name}</Link>

和函数

goToShow(param){
        axiosInstance.post("/user/search",param).then(
            res=>{
                localStorage.setItem("SEARCHED_CHARACTER",res.data.caracterDTO)
            }
        )
        this.props.history.push("/user/searchedCharacter")
    }

您正在调用该函数而不是将函数传递给 onClick,将该行更改为:

  <Link onClick={() => this.goToShow(show1.name)}>{show1.name}</Link>
  • 我认为如果你使用带有 link 的 js,代码甚至不会有机会被执行,因为 link 无论如何都会将用户引导至该页面我认为使用 js 事件作为属性,这对您的代码来说不是一个好的结构,最好处理来自 js
  • 的所有事件
  • 您可以尝试以下方法
<link href="#" id="mylink">click here</link>
var link = document.getElementById("mylink")
link.addEventListener("click", function() { 

  goToShow(param){
        axiosInstance.post("/user/search",param).then(
            res=>{
                localStorage.setItem("SEARCHED_CHARACTER",res.data.caracterDTO)
            }
        )
        this.props.history.push("/user/searchedCharacter")
    }

});