그래서 난 당신이 this.props.children
와 컴퍼넌트의 아이에 액세스 할 수 있는지 알고 : 나는 밥과 샐리에 관심이 있어요,하지만 경우에 대단한React 구성 요소의 하위 구성 요소에 액세스하는 방법이 있습니까?
<MyComponent>
<span>Bob</span>
<span>Sally</span>
</MyComponent>
제가 MyComponent
를 구성하는 구성 요소 (와 상호 작용하려면 즉 Subcomp1
및 Subcomp2
)?
render: function() {
return (
<div className="my-comp">
<Subcomp1 />
<Subcomp2 />
</div>
);
},
사용 사례 나는 탭 인덱스를 관리하는 고차 구성 요소를 만들려고 해요
(로빙 탭 인덱스 : https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex) 랩 구성 요소의 하위 구성 요소, 그것은 좋은 것입니다, 그래서 래핑 된 구성 요소에 대한 참조를 가져올 수 있고 유형별로 하위 구성 요소를 필터링 할 수 있습니다.
지금까지 가능한 유일한 접근 방법은 각 구성 요소에 각각의 하위 구성 요소에 대한 참조를 저장하는 것입니다. 그러나 이것은 지루하고 일종의 HOC 목적을 상쇄합니다. 이러한 하위 구성 요소에 액세스하는 일반적인 방법이 있습니까?
내가 할 노력하고있어의 거친 예 : tabIndex
조작은 HOC에서 수행 할 필요가 없다
var HOC = (ComposedComponent) => {
return React.createClass({
componentDidMount: function() {
const subComponents = this.composedComponent.subComponents; // Something like this would be nice
const menuItems = subComponents.filter(() => {
// figure out a way to identify components of a certain type
});
this.applyRovingTabIndex(menuItems);
},
render: function() {
return (
<ComposedComponent
ref={(c) => { this.composedComponent = c }}
{...this.props} />
);
}
});
};
그래서에서 멋진 개발자에 의해 일을 시도 할 수, 각'<하위 구성 요소에'tabIndex'를 조작 할 수있게하려면 />'? 왜 단지' '와 같은 소품을 보내지 않는가? 왜 구체적으로 심판이 필요한가? –
@NanduKalidindi 미안하지만 나는 최선의 예를 제공하지 못했다고 생각합니다. 나는 로빙 탭 인덱스와 같은 것을 시도하고있다 : https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex 그래서 메뉴 구성 요소에는 여러 가지 유형이 있는데, '구성 요소를 제외하고는 매우 다릅니다. 각 메뉴 구성 요소에 코드를 반복하지 않고 로빙 탭 인덱스 기능을 제공하지는 않겠습니다. – JayPea
그리고 tabIndex는 부모 구성 요소에 의해 올바르게 결정됩니까? 내가 올바르게 이해한다면 초점을 맞춘 요소는 tabIndex를 '0'으로 설정하고 나머지는'-1'을 가질 것인가? –