2017-05-23 2 views
-1

reactjs를 처음 사용함 - 확인란을 선택하면 상태를 설정하려고 시도했습니다. 상태를 읽으면 상태가 채워지는 것을 볼 수 있습니다. console.log ('state', state) - { 'option1': true}를 주겠지 만 - 할 때 this.state.length는 정의되지 않았습니다.상태가 설정된 경우 Reactjs submitHandler

+0

객체는 기본적으로 더'length' 속성이없는, 어쩌면 당신은 배열로 혼란있어? – Li357

+0

잘 - 어떻게 채워지는지 알 수 있습니까? { 'option1': true, 'option2': true, 'option3': true} –

+0

키를 가져 와서 배열의 길이를 확인하십시오. 열쇠 (this.state) .length' – Li357

답변

1

이유가 매우 간단합니다 : 상태는 인 개체이므로 길이는 undefined입니다.

key-value 쌍이 얼마나 많은지 확인하려면 Object.keys 쌍을 사용하면 모든 키 중 array이 반환되고 그에 대한 길이가 사용됩니다. 이처럼

:

console.log(Object.keys(this.state).length).

확인이 조각 :

let obj = {'option1': true, 'option2': true, 'option3': true}; 
 

 
console.log(Object.keys(obj).length);

+0

건배 남자 - 그래 보통 나는 항상 배열을 가지고 일한다. -하지만 이것은 단지 오브젝트 –

+0

에 기쁜 일인데, 도움이된다 :)'Object.keys()'에 대한 자세한 내용은 https : //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys –

+0

이전에 나왔습니다.하지만 배열 캡슐화가없는 개체가 증가하는지 확인하기는 거의하지 않습니다. 계속 - 나는 여러 가지 물건이 생기면 항상 물건을 배열에 집어 넣는다. –

관련 문제