Javascript 将自定义参数传递给react router Onter函数

Javascript 将自定义参数传递给react router Onter函数,javascript,reactjs,react-router,Javascript,Reactjs,React Router,通常情况下,react路由器路由的on enter功能与此类似: const isLoggedIn = (nextState, replace, callback) => { /* Some checks / redirects here */ } 我们在这样的路线上使用它 <Route onEnter={isLoggedIn} /> 您不能更改ReactJS提供的语法 正如React Doc中提到的,我们必须使用 onEnter(下一个状态、替换、回调?) 将要输入路

通常情况下,react路由器路由的on enter功能与此类似:

const isLoggedIn = (nextState, replace, callback) => {
  /* Some checks / redirects here */
}
我们在这样的路线上使用它

<Route onEnter={isLoggedIn} />

您不能更改ReactJS提供的语法 正如React Doc中提到的,我们必须使用

onEnter(下一个状态、替换、回调?)

将要输入路线时调用。它提供下一个路由器状态和重定向到另一个路径的函数。这将是触发挂钩的路由实例

如果callback被列为第三个参数,那么这个钩子将异步运行,转换将被阻塞,直到调用callback为止


PFA参考:

您可以使用上下文绑定来完成此操作。 当您从React Router内部调用函数时,只需在auth函数中绑定所需的数据。您也可以通过这种方式传递对象。 您的代码如下所示:

功能要求授权(下一状态,替换){
console.log(this.loggedIn)
}
var requireAuth=(loggedIn)=>(nextState,replace)=>{
console.log(loggedIn)
}
requireAuth(道具)}/>
请注意传递活动道具的重要性,否则道具可能代表旧状态

<Route onEnter={isLoggedIn(myParam)} />
const isLoggedIn = (myParam, nextState, replace, callback) => {
  /* Some checks / redirects here */
}
var requireAuth=(loggedIn)=>(nextState,replace)=>{
     console.log(loggedIn)
}

<Route onEnter={(props) => requireAuth(props)} />