반응형
버튼 클릭 한 번으로 반응 시 입력 비활성화
이 기본 컴포넌트가 있는데 버튼을 클릭할 때마다 텍스트 필드를 비활성화하거나 활성화하고 싶습니다.어떻게 하면 좋을까요?
샘플 코드는 다음과 같습니다.
import React from "react";
import Button from 'react-button'
const Typing = (props) => {
var disabled = "disabled";
var enabled = !disabled;
const handleUserInput = (event) => props.onUserInput(event.target.value);
const handleGameClik = (props) => {
disabled = enabled;
}
return(
<div>
<input
className = "typing-container"
value = {props.currentInput}
onChange = {handleUserInput}
placeholder=" ^__^ "
disabled = {disabled}/>
<Button onClick = {handleGameClik}> Start Game </Button>
<Button> Fetch Data </Button>
</div>
);
};
스테이트를 사용한 심플한 솔루션은 다음과 같습니다.
class Typing extends React.Component {
constructor(props) {
super(props);
this.state = { disabled: false }
}
handleGameClik() {
this.setState( {disabled: !this.state.disabled} )
}
render() {
return(
<div>
<input
className = "typing-container"
placeholder= " type here "
disabled = {(this.state.disabled)? "disabled" : ""}/>
<button onClick = {this.handleGameClik.bind(this)}> Start Game </button>
<button> Fetch Data </button>
</div>
);
}
};
여기서 작업하는 코드입니다.
** 2019 **
또 다른 옵션은 리액트 훅 후크를 사용하는 것입니다.useState
.
편집: 기능하는 컴포넌트
import React, {useState} from 'react';
function Typing(props) {
const [disabled, setDisabled] = useState(false);
function handleGameClick() {
setDisabled(!disabled);
}
return (
<div>
<input
className='typing-container'
placeholder=' type here '
disabled={disabled}
/>
<button type='submit' onClick={handleGameClick}> Start Game </button>
<button> Fetch Data </button>
</div>
);
}
헷갈리겠지만 React.js의 직원들은 실제로 모든 폼 컴포넌트를 재구축하여 네이티브 HTML 컴포넌트와 거의 똑같이 만들었습니다.하지만 몇 가지 차이점이 있다.
HTML에서는 다음과 같은 입력 필드를 비활성화해야 합니다.
<input disabled="disabled" />
그러나 React.js에서는 다음을 사용해야 합니다.
<input disabled={true} />
받아들여진 예는 어떤 것이든 동작하지 않기 때문에 동작합니다.0
고려되고 있다true
그 때문에"disabled"
라고도 해석됩니다.true
.
const [disabled , setDisabled] = useState(true)
if(condition){
setDisabled(false)
}else{
setDisabled(true)
}
return
<TextField placeholder="Name" disabled={ disabled} />
언급URL : https://stackoverflow.com/questions/36773671/deactivate-input-in-react-with-a-button-click
반응형
'programing' 카테고리의 다른 글
플러그인 없이 체크아웃 완료 전에 이미지를 업로드 할 수 있는 방법이 있나요? (0) | 2023.04.06 |
---|---|
Go에서 JSON 어레이를 해석하는 방법 (0) | 2023.04.06 |
Wordpress REST API 느린 응답 시간 (0) | 2023.04.01 |
componentDidUpdate vs componentWillReceiveProps 사용 사례 in react (0) | 2023.04.01 |
JQUERY ajax 값을 MVC View에서 컨트롤러로 전달 (0) | 2023.04.01 |