빠르고 쉬운... 하나의 기능으로 반응 상태 관리
9147 단어 webreactfunctionjavascript
코드를 반복하지 마십시오...
React에서는 코드의 다른 곳과 마찬가지로 꼭 필요한 경우가 아니면 절대 반복해서는 안 됩니다(거의 절대 안 됨).
아마도 당신이 읽을 내용은 쉽지만 온라인에서 일부 코드를 읽고 주제를 다루는 것에 대해 생각했습니다. 진부함에 대해 전문가에게 "사과"합니다.
예시...
우리는 텍스트 입력 태그를 관리해야 하고 사용자가 입력한 값을 기억하고 다시 변경될 때까지 어딘가에 표시해야 합니다!
React에서 어떻게 할까요?
구성 요소의 onChange
를 마지막 입력 값으로 업데이트하는 state
를 삽입한 다음 state
의 값을 입력 태그 또는 페이지의 다른 태그에 전달하여 표시합니다. 마지막 입력값.
코드에!
//we've a class... with a state defined
class App extends Component {
constructor(props){
super(props)
this.state={
myFirstState:"Labrador"
}
//we're going to manage the changes, and setState() equal to the user input
valueChange = (e) => {
this.setState({myFirstState : e.target.value});
}
//rendering time...we've an Input tag, with the state as value
//and the function, calling to onChange
render() {
return (
<div className="just a class">
<input placeholder="insertValue" value={this.state.myFirstState}
onChange= {this.valueChange(e)}/>
</div>
)
}
}
기본적인 내용입니다.
그리고 그것은 그것을 위해가는 방법 일뿐입니다.
하지만 둘 이상<input>
이 있는 경우에는 어떻게 해야 합니까?
둘도 아니고... 셋도 아니고... 같은 일을 하는 열 명<input>
이 넘는다고?
(포스트에 도움이 되는 과장입니다)
handleChange
함수에서 볼 수 있듯이 It's setState()
의 특정 상태를 변경합니다. 다른 함수<input>
에 동일한 함수를 사용하면 매번 myFirstState
의 값을 변경하게 됩니다.
(그리고 저를 믿으세요... 저는 사람들이 이와 같은 동일한 작업을 수행하는 수많은 기능을 사용하는 것을 보았습니다.)
내 생각은...
//we've a class... with a more states defined
class App extends Component {
constructor(props){
super(props)
this.state={
myFirstState:"Labrador",
mySecondState:"Akita"
}
//we're going to manage the changes, and setState() equal
//to the user input... for all the possible "keys" in the state object
valueChange = (key) => {
return function (e) {
var obj= {};
state[key] : e.target.value;
this.setState(obj);
}.bind(this);
}
//rendering time...we've more Input tags, with the states as values and one
//function, calling onChange... we're passing the "key" as argument.
render() {
return (
<div className="just a class">
<input placeholder="insertValue" value={this.state.myFirstState}
onChange= {this.valueChange("myFirstState")}/>
<input placeholder="insertValue" value={this.state.mySecondState}
onChange= {this.valueChange("mySecondState")}/>
</div>
)
}
}
이를 통해 setState()
가 변경하려는 상태이고 값이 사용자 입력인 객체를 전달하는 메서드key
를 호출합니다!.
또한 바인딩this
하지 않으면 오류가 발생합니다.
(유의 사항... setState()
가 렌더링을 트리거함)
도움이 되었길 바라며... 이런 경우를 좀 더 효율적으로 관리할 수 있는 제안을 구합니다!
시아 모험가
Reference
이 문제에 관하여(빠르고 쉬운... 하나의 기능으로 반응 상태 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/genta/fast--easy-react-states-management-in-one-function-2h08
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//we've a class... with a state defined
class App extends Component {
constructor(props){
super(props)
this.state={
myFirstState:"Labrador"
}
//we're going to manage the changes, and setState() equal to the user input
valueChange = (e) => {
this.setState({myFirstState : e.target.value});
}
//rendering time...we've an Input tag, with the state as value
//and the function, calling to onChange
render() {
return (
<div className="just a class">
<input placeholder="insertValue" value={this.state.myFirstState}
onChange= {this.valueChange(e)}/>
</div>
)
}
}
//we've a class... with a more states defined
class App extends Component {
constructor(props){
super(props)
this.state={
myFirstState:"Labrador",
mySecondState:"Akita"
}
//we're going to manage the changes, and setState() equal
//to the user input... for all the possible "keys" in the state object
valueChange = (key) => {
return function (e) {
var obj= {};
state[key] : e.target.value;
this.setState(obj);
}.bind(this);
}
//rendering time...we've more Input tags, with the states as values and one
//function, calling onChange... we're passing the "key" as argument.
render() {
return (
<div className="just a class">
<input placeholder="insertValue" value={this.state.myFirstState}
onChange= {this.valueChange("myFirstState")}/>
<input placeholder="insertValue" value={this.state.mySecondState}
onChange= {this.valueChange("mySecondState")}/>
</div>
)
}
}
Reference
이 문제에 관하여(빠르고 쉬운... 하나의 기능으로 반응 상태 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/genta/fast--easy-react-states-management-in-one-function-2h08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)