代码之家  ›  专栏  ›  技术社区  ›  anjanesh

如何将道具回调传递到路线?

  •  0
  • anjanesh  · 技术社区  · 5 年前

    在我父母身上应用程序.js我有文件:

    <Route path="/login" component={Login} onFormSubmit={this.onLoginSubmit} />
    

    但是在登录.js当我这样做时:

    this.props.onFormSubmit(this.state.email, this.state.password);
    

    我得到: 类型错误:this.props.onFormSubmit不是函数

    编辑:我看到这是一个解决方法:

    <Route path="/login" render={(props) => (<Login onFormSubmit={this.onLoginSubmit} {...props} />)} />
    

    2 回复  |  直到 5 年前
        1
  •  1
  •   Nilesh Patel    5 年前

    你应该使用这样的渲染道具。

    <Route
      path='/login'
      render={(props) => (
        <Login onFormSubmit={this.onLoginSubmit}  />
      )}
    />
    
        2
  •  1
  •   Reynard D    5 年前

    我假设你正在使用 react-router-dom Route component只向component属性注入三个属性, Login .

    https://reactrouter.com/web/api/Route/route-props ,但基本上只有以下值会被 路线 组成部分:

    match

    location

    位置代表了应用程序现在的位置,你想要它去哪里,甚至它曾经在哪里

    history

    本文档中的术语history和“history object”指的是history包,它是React Router仅有的两个主要依赖项之一(除了React本身),它提供了几种不同的实现,用于在各种环境中用JavaScript管理会话历史

    因此,传递任意属性值 onFormSubmit 从那以后就不起作用了 路线 . 如果你真的需要暴露 this.onLoginSubmit