2016-10-05 2 views
0

일부 스타일을 추가하여 항목을 클릭하면 배경색이 달라집니다.React 구성 요소에 활성 CSS 속성을 추가하는 방법은 무엇입니까?

클래스 ItemList를 가져 오는 클래스 ItemSection을 가져 오는 클래스 App가 있습니다. ItemSection과 ItemList 둘 다 내 propType에 activeItem: React.PropTypes.object.isRequired이 선언되어 있습니다.

나는 문제가 내 앱의 렌더링 방법으로 생각 :

render(){ 
return(
    <div className = 'app'> 
    <div className = 'manipulateItem'> {/*Need a better className*/} 
     <ItemSection 
     items = {this.state.items} 
     addItem = {this.addItem.bind(this)} 
     setItem = {this.setItem.bind(this)} 
     deleteItem = {this.deleteItem.bind(this)} 
     editItem = {this.editItem.bind(this)} 
     activeItem = {this.state.activeItem} /*THIS LINE I BELIEVE*/ 
     /> 
    </div> 
    </div> 
) 
} 

을 그리고 이것은 내 역 추적입니다 :

bundle.js : 1251 경고 : 실패 소품 유형 : 소품 activeItem에 지정되지 않은 필수 ItemList. (응용 프로그램에 의해 생성) ItemSection 에서 (ItemSection에 의해 생성) ITEMLIST 에 는 사업부에서 앱

에서 (응용 프로그램에 의해 생성) 사업부 에 (응용 프로그램에 의해 생성)이 activeItem: React.PropTypes.object.isRequired 선언이 당신은 당신의 질문에 명시되어
+0

이것은 ItemList에서 비롯되었으며, 세 가지 구성 요소 코드를 모두 게시 할 수 있습니까? 또한 귀하의 질문은 처음에는 배경색에 대한 것이고 propType 경고로 전환됩니다. 귀하의 주요 관심사가 무엇인지 이해하려고 노력하십시오. – finalfreq

답변

0

귀하의 propType에서하지만 당신은 구체적으로 상태 개체에서 activeItem을 요구하고 있습니다 - activeItem = {this.state.activeItem}. 구성 요소로 전달하는 소품에서 activeItem의 값을 사용하려면 this.props.activeItem을 사용해야합니다.

희망이 도움이됩니다.

+0

글쎄, 이걸 바꿔서 다른 오류가 생겼어 bundle.js : 1251 경고 : 실패한 소품 유형 : 필수'propItem'이 'ItemList'에 지정되지 않았습니다. (응용 프로그램에 의해 생성) (응용 프로그램에 의해 생성) 사업부 에서 앱 에서 (ItemSection에 의해 생성) ITEMLIST (응용 프로그램에 의해 생성) ItemSection 사업부에서 에서 에서 는 어떤 이상한 것은 나 또한 activeItem을 가지고 = {this.props입니다 .activeItem} ItemList.jsx –

+0

이 올바르게 이해하고 있다면 당신은'ItemSection'을 렌더링하는 렌더링 함수를 가진 컴포넌트 인 app.js를 가지고 있고'ItemSection'에 당신은'activeItem '그 속성을 앱의 기본 소품에서 오는'this.props.activeItem'의 값으로 전달합니다. 그래서'error : bundle.js : 1251 경고 : 실패한 소품 유형 : 필요한 소품 액티브 아이템이 ItemList에 지정되지 않았습니다 .'와 같은 오류가 발생하면'ItemSection'에 전달할'activeItem' 속성이 아마도 정의되지 않았습니다. – Narutkowski

+0

App.jsx가 올바른 ItemList를 만드는 ItemSection을 만들고 있습니까? className 등을 설정하기 위해'this.props.activeItem'을 사용할 필요가 있다면'className = {this.props.activeItem? 'active-item': ''}' – Narutkowski

관련 문제