선택

2016-06-02 10 views
0

내가 ReactBootstrap 구성 요소 DropdownButton 및 MenueItem 지향 다음 코드를 가지고 작동하지 않습니다 모르겠다 .props.on을 선택하고 내 전화를하지 않는다. 드롭 다운 구성 요소에서 선택한다. 선택이 작동하지 않습니다.선택

아무도 도와 줄 수 있습니까?

답변

0

귀하의 DropdownItems가 자동으로 드롭 다운 구성 요소에

{React.cloneElement(this.props.children, {...this.props})} 

을이를 추가하여 드롭 다운 소품에서 상속 또는 여러 어린이 요소 만 원하는 소품

{React.cloneElement(this.props.children, {onSelect: this.props.onSelect})} 

편집을 지정할 수 있습니다

{React.Children.map(this.props.children, child => React.cloneElement(child, {onSelect: this.props.onSelect}))} 
+0

안녕하세요 Michael, 답변을 구하십시오. 이렇게 하시겠습니까? 클래스 드롭 다운 구성 요소 { render() { return (

{React.cloneElement(this.props.children, { onSelect: this.props.onSelect })}
); "불변 위반 : } } 그러나 지금, 나는 다음과 같은 오류가 발생합니다 (복합 구성 요소) (내장 구성 요소) 문자열이나 클래스/기능을 기대하지만, 가지고 : 요소 유형이 유효하지 않습니다 정의되지 않은 . " – Ben

+0

나쁘다, 그것은 1을 위해 많은 아이를 위해 일하지 않는다, 나는 해결책을 최신의 것으로 바꿨다 –

+0

예 thats 오른쪽 :-) 나는 그것을 단지 발견했다. 답변을 게시하십시오. 고마워 Michael :-) – Ben

0

handleOnSelect 함수를 DropdownItem의 소품으로도 사용할 수 있습니까?

<Dropdown onSelect={this.handleOnSelect}> 
    <DropdownItem eventKey="categorize" onSelect={this.handleOnSelect}><i className="icon fa fa-filter"></i>Fotos kategorisieren</DropdownItem> 
    <DropdownItem eventKey="share" onSelect={this.handleOnSelect}><i className="icon fa fa-link"></i>Fotos freigeben</DropdownItem> 
</Dropdown> 

같은 뭔가 당신이 혼란 것 같아요 당신이 유일한 구성 요소를 렌더링 최상위 레벨로 소품을 통과 할 수 있다고 생각하지만, 사실은 당신이 원하는 JSX 내 어디서나 전달할 수 있습니다.

0

좋습니다. 그것을 가라. 다음은 작동합니다 :

{React.Children.map(this.props.children, child => { 
    return React.cloneElement(child, { onSelect: this.props.onSelect }) 
})} 

감사합니다. 도움을 주신 @MichaelRasoahaingo!

+0

나쁜 경우는 실패하기 때문에. 하나의 자식 만 전달하면 어떤 자식도 통과하지 못했습니다. 배열이 아니므로지도가 함수가 아닙니다. – degr

+0

https://facebook.github.io/react/docs/top-level-api를 확인하십시오. html React.Children.map – degr

+0

문제를 해결 된 것으로 표시하는 것을 잊지 마시기 바랍니다 :) –