如何触发来自家长的提交?

时间:2018-11-16 11:45:37

标签: reactjs formik

我想调用子组件的Submit方法。因此,我使用ref属性。 但看起来我只是得到一个WithContext对象。

那么如何在TodoForm > submit内部调用App > submitForm

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

1 个答案:

答案 0 :(得分:0)

由于将TodoForm组件包装在withNamespaces HOC中,因此获得对TodoForm的引用并不像调用ref={..}那样容易,因为这会返回对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

也许您不想在类之外使用变量,所以我将用哪种方式处理该问题。例如,您可以从this post获得灵感。