React 구성 요소로 작업할 때 'setState' 속성을 읽을 수 없음 정의되지 않음" 오류가 발생했습니다. 이 문제는 React 구성 요소의 메서드 내에서 setState 메서드에 액세스하려고 할 때 발생하지만 해당 메서드가 구성 요소 인스턴스에 제대로 바인딩되지 않았습니다.
제공된 예를 들어 이 오류는 delta() 메서드 내에서 발생합니다. 그 이유는 this.delta가 Counter 구성 요소 인스턴스에 바인딩되어 있지 않기 때문입니다. 이 문제를 해결하려면 생성자에서 다음 코드를 사용하세요.
<code class="javascript">this.delta = this.delta.bind(this);</code>
델타 메서드를 구성 요소 인스턴스에 바인딩하면 구성 요소의 this 컨텍스트에 액세스할 수 있으므로 setState 메서드에 액세스할 수 있습니다. 및 구성요소 상태.
코드의 수정된 버전은 다음과 같아야 합니다.
<code class="javascript">class Counter extends React.Component { constructor(props) { super(props); this.state = { count: 1, }; this.delta = this.delta.bind(this); // Bind 'delta' to the component instance } delta() { this.setState({ count: this.state.count++, }); } render() { return ( <div> <h1>{this.state.count}</h1> <button onClick={this.delta}>+</button> </div> ); } }</code>
델타 메소드를 바인딩하면 " 정의되지 않은 오류의 'setState' 속성을 읽을 수 없으며 구성 요소가 예상대로 개수를 증가시키도록 할 수 없습니다.
위 내용은 React가 '정의되지 않은 'setState' 속성을 읽을 수 없습니다' 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!