목록데이터구조 (199)
스택큐힙리스트
React (JSX) 코드에서 ...은 무엇을 하는 것이며 이것의 이름은 무엇인가요? 답변 1전개 표기법은 단지 해당 사용 사례에 유용할뿐 아니라 기존 객체의 대부분 (또는 모두)의 속성을 가진 새 객체를 만드는 데에도 유용합니다 - 이는 상태를 업데이트할 때 자주 발생하므로 상태를 직접 수정할 수 없습니다: this.setState(prevState => { return {foo: {...prevState.foo, a: updated}}; }); this.state.foo를 새로운 객체로 대체하면 속성이 foo와 동일한 모든 속성을 가지고 a 속성은 updated로 변경됩니다: const obj = { foo: { a: 1, b: 2, c: 3 } }; console.log(original, obj.f..
자바스크립트에서 x번 반복하는 일반적인 방법은 다음과 같습니다: for (var i = 0; i < x; i++) doStuff(i); 하지만 나는 ++ 연산자를 사용하지 않거나 전혀 가변 변수를 사용하고 싶지 않습니다. 그래서 ES6에서 다른 방법으로 x번 반복할 방법이 있을까요? 나는 루비의 메커니즘을 좋아합니다: x.times do |i| do_stuff(i) end 자바스크립트/ES6에서 비슷한 것이 있을까요? 약간 트릭을 사용하여 직접 제너레이터를 만들 수 있습니다: function* times(x) { for (var i = 0; i < x; i++) yield i; } for (var i of times(5)) { console.log(i); } 물론 여전히 i++를 사용하고 있습니다. 적어..
컴포넌트가 렌더링된 후에 특정 텍스트 필드에 포커스를 설정하는 리액트 방식은 무엇인가요? 문서에서는 ref를 사용하는 것을 제안하고 있습니다. 예를 들어: render 함수에서 내 입력 필드에 ref=nameInput를 설정하고 다음과 같이 호출합니다: this.refs.nameInput.getInputDOMNode().focus(); 하지만 이것을 어디에 호출해야 할까요? 몇 군데를 시도해 봤지만 작동하지 않았습니다.답변 1@Dhiraj의 답변이 맞습니다. 편의를 위해, 입력란이 마운트될 때 자동으로 포커스되도록 autoFocus 속성을 사용할 수 있습니다:
나는 state 배열의 끝에 요소를 추가하고 싶은데, 이게 올바른 방법인가요? this.state.arrayvar.push(newelement); this.setState({ arrayvar:this.state.arrayvar }); push를 사용하여 배열을 장소에서 수정하는 것이 문제가 생길 수 있는지 걱정됩니다. 안전한가요? 배열의 사본을 만들고 setState하는 대안은 낭비적인 것 같습니다.답변 1The React docs says: 이.state를 불변객체인 것처럼 다루세요. 직접 상태를 변경하는 것은 코드에 오류를 유발할 수 있으며, 이후 리셋한다고 하더라도 어떤 라이프사이클 메서드가 트리거되지 않을 수 있습니다. 예를 들어, componentDidUpdate과 같은 일부 라이프사이클 메서드..