FormItem ANTD의 잘못된 defaultValue 또는 값 문제
P粉265724930
2023-08-22 23:51:25
<p>다음 코드를 사용해 보았으나 필드가 바인딩되지 않았습니다. onChange 속성은 잘 작동합니다</p>
<pre class="brush:php;toolbar:false;">const { getFieldDecorator, getFieldError, isFieldTouched } = this.props.form;
const NameError = isFieldTouched("이름") && getFieldError("이름");
<FormItem verifyStatus={NameError ? "오류": ""} help={NameError ||
{getFieldDecorator("이름", {
//초기값: this.state.Data.Name,
규칙: [{ 필수: true, 메시지: "구성요소 이름을 입력하세요! }]
})(
<입력
className="양식 제어"
유형="텍스트"
이름="이름"
defaultValue={this.state.Data.Name}
onChange={this.onChange}
/>
)}
</FormItem></pre>
<p>제가 뭔가 놓치고 있는 게 있나요? <code>Input</code></p> 대신 <code>input</code>을 사용하기도 했습니다.
<p><strong>Edit</strong> <code>comComponentDidMount</code> 메소드에서 API로부터 데이터를 가져옵니다. </p>
<pre class="brush:php;toolbar:false;">fetch('http://localhost:5728/Fields/get/' + this.state.Data.Id)
.then(결과=>{
결과.json()을 반환합니다.
})
.then(데이터=>{
this.setState({
데이터: {
ID: data.field.Id,
이름: 데이터.필드.이름,
설명: 데이터.필드.설명,
값: 데이터.필드.값
}
})
})</pre>
<p><code>initialValue</code>를 사용해 보았지만 이는 상태 값이 <code>constructor</code> 메소드에 설정된 경우에만 작동합니다. API 호출 시 변경사항이 반영되지 않습니다. </p>
후크를 사용해도 됩니다
으아악문서에는 다음과 같이 명시되어 있습니다.
백엔드에서 데이터가 로드되면
으아악setFieldsValue
를 호출하세요.간결하게 말하면 백엔드의
으아악data.field
가 필드 이름과 정확히 일치하는 경우: