1

我有两个兄弟组件。

一个组件包含文本框、复选框、下拉控件。

另一个组件包含 Kendo Grid。

每当用户单击网格行时,我想将焦点设置在上述组件中的一个元素上,其中包括文本框。

使用的方法:

1.我不想使用 ref,因为我在一个组件中有多个控件。

2.我已经为输入元素动态添加了自动对焦属性。

4

1 回答 1

1

免责声明:不确定这些解决方案是否是 React 中的最佳实践

有两种方法,都使用refs,但实现更智能:

  • 在输入周围创建一个包装器并分配refs给它。每当您想专注于输入时,只需使用wrapperRef.querySelector('[name=yourInput]). 工作示例:https ://codesandbox.io/s/195kkrpvq
  • 创建一个对象,该对象将字段的名称存储为键,并将它们的引用存储为值。只需用于this.yourRefsObject[yourInputName].focus()专注于输入。工作示例:https ://codesandbox.io/s/61jl7q9v43

同样,我不确定这些实现是否是最佳实践,但他们现在应该可以完成这项工作

于 2018-10-29T20:39:59.443 回答