2017-04-25 1 views
2

속성별로 개체를 필터링하려고하는데 작동하지 못합니다.React - 개체 속성 별 필터

enter image description here

나는 UID로 데이터를 가져 오는 한 후 해당 객체에서 모든 항목을 매핑하고 있지만 필터 작업을 할 수 없습니다 : 개체에

데이터과 같이 구성되어 있습니다.

render() { 
 
    return(
 
     <div> 
 
     {Object.keys(this.state.dataGoal) 
 
      .filter(key => key.main == true) 
 
      .map((key, index) => { 
 
      return <div key={key}> 
 
        <h1>{this.state.dataGoal[key].name}</h1> 
 
        <p>{this.state.dataGoal[key].main}</p> 
 
        </div> 
 
      })} 
 
     </div>

모든 아이디어는 내가 잘못 뭐하는 거지 : 방법을 렌더링

지금처럼 보인다? 어떤 도움

감사합니다, this.state.dataGoal 게시 목표 배열에서 개체라고 가정 야쿱

+1

'this.state.dataGoal' 무엇인가

obj = { 'a': 1, 'b': 2 }; Object.keys(obj); // ['a', 'b'] 

그래서 당신이 키를 사용하여 액세스해야하는 속성 값에 액세스하기 위해, 귀하의 경우에이 같은 것? – dfsq

답변

3

Object.keys은 해당 개체의 keys을 반환합니다. 즉, 해당 개체의 모든 키가있는 문자열 배열을 반환합니다.

filter(key => this.state.dataGoal[key].main == true) 
+0

고맙습니다. 해결책입니다. –

2

는 다음 필터는 잘못된 것입니다. 해야합니다 키는 문자열, Khasdfasdfasdfasdfads 같은이고 당신은 그것의 main 속성을 확인하기 위해이 키 goal 개체에 액세스하기를 원하기 때문에

{Object.keys(this.state.dataGoal) 
    .filter(key => this.state.dataGoal[key].main === true) 
    .map((key, index) => { 
    return <div key={key}> 
      <h1>{this.state.dataGoal[key].name}</h1> 
      <p>{this.state.dataGoal[key].main}</p> 
      </div> 
    })} 

참고, 그게 지금은 .filter(key => this.state.dataGoal[key].main === true)입니다.

+0

정말 고맙습니다. –