1
사용자가 여러 텍스트 필드를 지정한 다음이 양의 필드를 동적으로 렌더링 할 수있는 앱을 만들고 있습니다. 상태를 설정하여 각 필드에 대해 고유하도록하는 데 문제가 있습니다. 다음 코드 세그먼트는 다음과 같습니다 현재React의 텍스트 입력을 반복합니다.
var fieldsArray = [];
for(var i = 0; i <= this.props.numToShow; i ++){
fieldsArray.push(
<div>
<label>
<div className="label">{i}</div>
<input type='text' value={this.state.value} name={this.state.value} onChange={this.handleChange} />
</label>
</div>
);
}
return (
<div className = 'inputs'>
{fieldsArray}
</div>
);
, 내가 필드 중 하나는, 다른 모든 필드는 그 고유의 필드 상태로 업데이트 변경할 때.
handleChange: function(e){
this.setState({
value: e.target.value,
});
}
이 배열로 상태를 초기화하는 방법은 입력의 트랙을 유지할 수있다 : 여기 상태를 설정 handleChange 기능은 무엇입니까? 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?
확산 연산자가있는 행에서 프로그램이 실패합니다. 이 라인이 무엇을하는지 더 이해하려고 노력 중입니다. this.state.values는 현재 상태 값을 모두 유지하고 [i] : e.target.value는 현재 입력 값을 대상 값으로 설정합니다. 대신 값 [i]이 아니어야합니다. 내 스택이 지원하지 않는지 확실하지 않지만 추가 연구를 통해 문제가되지 않아야합니다. – user3745115
아마 당신은 Babel로 설정된 스프레드 연산자가 없을 것입니다. 내가 사용하고있는 이유는 배열 값이 새로운 객체이고 인덱스 만 변경 되었기 때문입니다. 대신 이것을 시도 할 수 있습니다 :'var newValues = this.state.values.slice(); newValues [i] = e.target.value; this.setState ({values : newValues}); ' – Jacob
그 트릭을 했어. 고맙습니다! – user3745115