反应路由器-将功能传递给孩子

时间:2020-05-30 15:41:14

标签: javascript reactjs react-router

我正在使用具有以下结构的 react-router redux redux-saga 开发一个react-app:

  • App.js :我所有路线所在的位置
<Switch>
  <Route path="/" exact component={Index}/>
  <Route path="/user" exact component={Userlist}/>
  <Route path="/user/:id" exact component={Userdetail}/>
</Switch>
  • Userlist.js

有状态组件连接到redux并从后端获取数据。数据在表中列出,并具有指向Userdetail组件的链接。 在用户列表组件中,必须完成所有状态管理(例如,更新/删除用户) 单击表中的一行后,呈现Userdetail组件(我将用户数据通过Router-Link状态传递给我的组件)。

<Link to={{
            pathname: `/user/${props.user._id}`,
            state: {
                user: user
            }
        }} className="stretched-link"/>

通过使用状态并通过我的userdetail组件中的props.location访问数据,将数据传递到我的userdetail列表正在按预期的方式工作。

  • Userdetail.js

在此组件中,将显示用户的所有其他数据。另外,还有两个按钮用于处理更新和删除部分。这两个函数的引用应作为道具从Userlist传递给Userdetail组件。

现在我要问我的问题: 如何将函数引用从 Userlist.js 传递到相应的子组件( Userdetail.js )? 我知道有一种方法可以使用render方法(而不是组件)将多个props传递到路线,但是很难根据我的应用程序结构来实现。如果可能的话,我想将所有路由都保存在App.js或单独的文件中。 预先非常感谢

0 个答案:

没有答案