以相同方式处理事件和非事件函数?

时间:2018-12-06 18:24:06

标签: javascript reactjs typescript events onclick

我想要一个具有路径并导航到该路径的函数。我希望它可以普遍使用。像这样:

export const navigate = (path: string) => {
 getHistory().push(path)
}

所以,我希望能够将其作为普通函数调用

navigate('gohere')

以及对onClick动作的响应

onClick={navigate('gohere')

不幸的是,第二个无效。如果我这样添加事件:

export const clicknavigate = (path: string) => (event: any) => {
    getHistory().push(path)
}

然后它起作用了,但这意味着我必须为每个操作具有两个功能-如果是通过单击或鼠标事件调用的,则为一个,否则,则为一个。

必须有一种方法可以用一个函数处理这两个问题吗?

1 个答案:

答案 0 :(得分:0)

export const clicknavigate = (path: string, event: any) => {
    if(event){
      getHistory().push(path)
    }
    return         
}

然后按照onClick={(e) => clicknavigate('gohere', e)}

在onClick方法上调用它