我想调用子组件的Submit方法。因此,我使用ref属性。 但看起来我只是得到一个WithContext对象。
那么如何在TodoForm > submit
内部调用App > submitForm
。
这是一个运行中的示例:https://codesandbox.io/s/92nm15pnqr
答案 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获得灵感。