如何触发父提交?

How to trigger submit from parent?

我想调用子组件的提交方法。因此我使用 ref 道具。 但看起来我只是得到了一个 WithContext 对象。

那么如何在App > submitForm.

中调用TodoForm > submit

这是一个 运行 示例:https://codesandbox.io/s/92nm15pnqr

因为您将 TodoForm 组件包装在 withNamespaces HOC 中,所以获取对 TodoForm 的引用并不像调用 ref={..} 那样容易,因为 returns 引用 HOC。要获取对组件的引用,您必须在创建 HOC 时利用 innerRef 参数(参见 docs

const TodoFormTranslated = withNamespaces("", {
  innerRef: (ref) => VARIABLE_WHICH_WILL_NOW_CONTAIN_REF_TO_YOUR_EL = ref
})(TodoForm);

您的问题的快速但可行的解决方案如下所示:https://codesandbox.io/s/n55yvw1o2m

也许您不想要 class 之外的变量,所以我会把它留给您,您希望以哪种方式处理它。例如,您可以从 this post.

中获得灵感