반응형
입력의 onChange 핸들러에 여러 매개 변수를 전달하는 방법
배열 내의 객체에 대한 입력 요소 컬렉션을 렌더링합니다.
render: function() {
var ranges = [];
this.props.ranges.map(function(range, index) {
var rangeElement = <Input type="text"
value={range.name} onChange={this.changeRangeName.bind(this)} />
ranges.push(rangeElement);
}, this);
// render ranges
}
이를 통해 onChange 핸들러 함수를 쓸 수 있습니다.
changeRangeName: function (event) {
var newName = event.target.value;
},
그러나 이 핸들러에서는 변경할 범위 객체의 ID가 필요합니다.따라서 렌더 함수의 입력 요소 작성 방법을 변경하고 다음을 변경할 수 있습니다.
var rangeElement = <Input type="text"
value={range.name}
onChange={this.changeRangeName.bind(this, range.id)} />
이제 핸들러는 파라미터로 range.id을 수신하지만 newName 값이 없습니다.레퍼런스를 사용해서 얻을 수 있다.
var rangeElement = <Input type="text"
ref={'range' + range.id}
value={range.name}
onChange={this.changeRangeName.bind(this, range.id)} />
이게 내가 아는 유일한 해결책이지만 더 나은 해결책이 있을 것 같아.
이 방법이 더 쉽다고 생각합니다.
<Input type="text"
value={range.name}
onChange={(e) => this.changeRangeName(range.id, e)}
...
onChange(id, e) {
...
}
그event인수는 아직 통과되었지만rangeId인수 목록 앞에 인수가 붙기 때문에changeRangeName방법은 다음과 같습니다.
changeRangeName: function (rangeId, event) {
var newName = event.target.value;
},
언급URL : https://stackoverflow.com/questions/29099610/how-to-pass-multiple-parameters-to-inputs-onchange-handler
반응형
'programing' 카테고리의 다른 글
| TypeScript를 사용하여 Angular 2에서 객체를 JSON으로 올바르게 변환하는 방법 (0) | 2023.03.21 |
|---|---|
| Angular Checks "Select All(모두 선택)" 기능(처음에는 한 상자만 선택) (0) | 2023.03.21 |
| Spring Data Rest - 여러 속성 (0) | 2023.03.21 |
| 이미지: 이 파일 형식을 처리하려면 적절한 로더가 필요할 수 있습니다. (0) | 2023.03.21 |
| Spring Boot Framework에서는 @Spring Application Configuration, @Web Integration이 권장되지 않는 적절한 주석은 무엇입니까? (0) | 2023.03.16 |