【问题标题】:How to pass callback function in Link "to" attribute如何在链接“to”属性中传递回调函数
【发布时间】:2019-05-20 13:43:42
【问题描述】:

我将 React 16.6 和 react-router v4 用于主从 Web 应用程序。我在导航栏中显示标题,使用 React 路由器和链接呈现单个元素。使用组件我可以轻松渲染数组元素,但我希望允许对每个组件进行就地编辑,并将状态更改传播回父级。

根据here 的详细信息,我尝试使用“to”对象中的状态传递回调函数。检查组件构造函数时该函数不可用。

例子

<Link class="col" to={{pathname: `/listing/${id}`,  state: {entity: elem, callback: updateComponent}}}>{elem['name']}</Link>

updateComponent 是一个函数。

处理这种情况的首选方法是什么?

【问题讨论】:

  • 所以列表是您的组件,您在其中显示该 ID 的详细信息,并且您希望允许编辑和更改必须在父组件中更新,对吗?
  • 没错!

标签: reactjs react-router react-router-v4


【解决方案1】:

只是看了一眼,从我收集到的 action 是历史记录。

action - (string) The current action (PUSH, REPLACE, or POP)

您可以使用onClick 触发回调

【讨论】:

  • 感谢您的建议。我希望子组件根据用户交互选择何时更新。我的理解(我可能是错的)是 onClick 仅适用于初始渲染。
  • 子组件可以有一个像 doRender={this.state.renderChild} 这样的 prop 传递...你的点击可能会触发 this.dosomething = () => { // 这可能会改变你的 this .state.doRender } 然后你的子组件可以使用 componentWillReceiveProps(nextProps) 生命周期来评估新的道具并调用它自己的函数来处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2020-05-23
  • 2013-06-06
  • 2021-02-08
  • 2012-02-09
  • 1970-01-01
相关资源
最近更新 更多