ReactJS의 제어된 입력 오류와 제어되지 않은 입력 오류
React 구성 요소로 작업할 때 제어된 입력과 제어되지 않은 입력의 차이점을 이해하는 것이 중요합니다. 기본적으로 입력은 제어되지 않습니다. 즉, 입력 값이 DOM에 의해 관리됩니다. 그러나 입력에 값 속성을 설정하면 제어된 입력이 됩니다. 즉, 그 값은 React에 의해 관리됩니다.
구성 요소가 처음에 초기 값을 정의하지 않고 제어되지 않은 입력을 제어된 입력으로 렌더링하면 React는 당신이 언급한 것과 같은 경고를 발생시킵니다:
"구성 요소가 제어할 텍스트 유형의 제어되지 않는 입력을 변경하고 있습니다. 입력 요소는 제어되지 않는 것에서 제어되는 것으로(또는 그 반대로) 전환되어서는 안 됩니다.
제공된 코드에서:
render() { return( <div className="form-group"> <input value={this.state.fields["name"]} onChange={this.onChange.bind(this, "name")} className="form-control" type="text" refs="name" placeholder="Name *" /> <span style={{color: "red"}}>{this.state.errors["name"]}</span> </div> ) }
생성자에서 필드가 빈 객체인 필드: {}로 초기화되기 때문에 문제가 발생합니다. 이는 처음에는 this.state.fields.name이 정의되지 않음을 의미합니다. 결과적으로 입력 필드가 제어되지 않습니다. 그러나 사용자가 값을 입력하면 상태가 업데이트되어 입력이 제어되는 구성 요소가 됩니다. 이러한 일관되지 않은 동작으로 인해 React 경고가 발생합니다.
가능한 해결 방법:
위 내용은 다음은 질문 측면과 ReactJS 컨텍스트에 초점을 맞춘 몇 가지 제목 옵션입니다. 1. **React의 제어된 입력과 제어되지 않은 입력: \'스위칭 상태\' 경고를 피하는 방법은 무엇입니까?** 2. **다시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!