상태를 설정할 때 동적 키 이름을 사용하는 예를 찾을 수 없습니다. 이것이 내가하고 싶은 일입니다.
inputChangeHandler : function (event) {
this.setState( { event.target.id : event.target.value } );
},
여기서 event.target.id는 업데이트 할 상태 키로 사용됩니다. 이것이 React에서 가능하지 않습니까?
상태를 설정할 때 동적 키 이름을 사용하는 예를 찾을 수 없습니다. 이것이 내가하고 싶은 일입니다.
inputChangeHandler : function (event) {
this.setState( { event.target.id : event.target.value } );
},
여기서 event.target.id는 업데이트 할 상태 키로 사용됩니다. 이것이 React에서 가능하지 않습니까?
답변:
@Cory의 힌트 덕분에 이것을 사용했습니다.
inputChangeHandler : function (event) {
var stateObject = function() {
returnObj = {};
returnObj[this.target.id] = this.target.value;
return returnObj;
}.bind(event)();
this.setState( stateObject );
},
ES6 또는 Babel 변환기를 사용하여 JSX 코드를 변환하는 경우 계산 된 특성 이름으로 이를 수행 할 수 있습니다.
inputChangeHandler : function (event) {
this.setState({ [event.target.id]: event.target.value });
// alternatively using template strings for strings
// this.setState({ [`key${event.target.id}`]: event.target.value });
}
computed property names
trad
. 이것은 <Radio />
구현 을 위해 코드 복제를 피하기 위해 찾고 있던 것입니다.
this.setState({ [event.target.id]: event.target.value });
다음 과 같이 계산 된 속성 이름을 사용하여 상태를 설정하면 다음을 사용하여 해당 상태에 어떻게 액세스 this.state......
합니까?
여러 개의 제어 된 입력 요소를 처리해야하는 경우 각 요소에 이름 속성을 추가하고 핸들러 함수가 event.target.name 값에 따라 수행 할 작업을 선택하도록 할 수 있습니다.
예를 들면 다음과 같습니다.
inputChangeHandler(event) {
this.setState({ [event.target.name]: event.target.value });
}
this.state([event.target.name])
?
내가 이것을 어떻게 달성했는지 ...
inputChangeHandler: function(event) {
var key = event.target.id
var val = event.target.value
var obj = {}
obj[key] = val
this.setState(obj)
},
this.forceUpdate();
. 나중에 문제가 무엇인지 보자 !!
다음과 같은 스프레드 구문을 사용할 수 있습니다.
inputChangeHandler : function (event) {
this.setState( {
...this.state,
[event.target.id]: event.target.value
} );
},