itbloger
홈
태그
방명록
programing tip
값 검색
itbloger
2020. 11. 24. 07:45
반응형
값 검색
React에서 여러 옵션 사용 선택 상자에 대해 어떤 옵션이 선택되는지 설정하는 React 방법은 선택하려는 <option> 요소의 값 속성에 해당하는 <select> 자체에 특수 값 소품을 설정하는 것입니다.
다중 선택의 경우이 소품은 대신 배열을 받아 들일 수 있습니다.
(편집 : 현재 문서는 이것에 대한 참조를 제거 한 것 같습니다.) 이제 이것은 특별한 속성이기 때문에 동일한 배열의 옵션 값 구조에서 선택한 옵션을 검색하는 표준 방법이 무엇인지 궁금합니다. DOM 요소에서 동일한 값 속성을 사용할 수 없기 때문에 사용자가 항목을 변경합니다 (콜백을 통해 부모 구성 요소 등으로 전달할 수 있음).
예제를 사용하려면 텍스트 필드에서 다음과 같은 작업을 수행합니다 (JSX). var TextComponent = React.
createClass ({handleChange : function (e) {var newText = e.target.value; this.props.someCallbackFromParent (newText);}, render : function () {return <input type = "text"value = {this.props .someText} onChange = {this.handleChange} />;}});
대체하는 것과 동등한 것은 무엇입니까 ???
이 다중 선택 구성 요소에 대해?
var MultiSelectComponent = React.createClass ({handleChange : function (e) {var newArrayOfSelectedOptionValues = ???; this.props.someCallbackFromParent (newArrayOfSelectedOptionValues);}, render : function () {return (<select multiple = {true} value = {this.props.arrayOfOptionValues} onChange = {this.handleChange}> <option value = {1}> 첫 번째 옵션 </ option> <option value = {2}> 두 번째 옵션 </ option> <option value = {3} > 세 번째 옵션 <
/ 옵션> </ select>);
}});
변경 이벤트의 대상으로 실제 DOM 노드를 사용하고 있기 때문에 다른 곳에서도 동일한 방식으로 수행합니다. handleChange : function (e) {var options = e.target.options;
var 값 = [];
for (var i = 0, l = options.length; i <l; i ++) {if (options [i] .selected) {value.push (options [i] .value);
}} this.props.someCallback (value);
} ref를 사용하려는 경우 다음과 같이 선택한 값을 얻을 수 있습니다. var select = React.findDOMNode (this.refs.selectRef);
var values = [] .filter.call (select.options, function (o) {return o.selected;}). map (function (o) {return o.value;});
2018 ES6 업데이트 let select = this.refs.selectRef;
let values = [] .filter.call (select.options, o => o.selected) .map (o => o.value);
양식이 완료되는 동안 선택한 옵션을 추적하려는 경우 : handleChange (e) {// 선택한 값을 유지하도록 기본 상태를 초기화했다고 가정합니다. this.setState ({selected : []. slice.call (e.target.selectedOptions) .map (o => {return o.value;});});
} selectedOptions는 DOM과 관련된 요소의 배열과 유사한 컬렉션 / 목록입니다.
옵션 값을 선택할 때 이벤트 대상 개체에서 액세스 할 수 있습니다.
Array.prototype.sliceand 호출을 통해 새 상태에 대한 복사본을 만들 수 있습니다.
질문에 대한 또 다른 대답 인 ref (이벤트를 캡처하지 않는 경우)를 사용하여 이러한 방식으로 값에 액세스 할 수도 있습니다.
가장 쉬운 방법 ... handleChange (evt) {this.setState ({multiValue : [... evt.target.selectedOptions] .map (o => o.value)});
} Array.from () 및 e.target.selectedOptions를 사용하여 제어 된 다중 선택을 수행 할 수 있습니다. handleChange = (e) => {let value = Array.from (e.target.selectedOptions, option => option.value) ;
this.setState ({값 : 값});
} target.selectedOptions는 HTMLCollection을 반환합니다. https://codepen.io/papawa/pen/XExeZY 다음은 나를 위해 일했습니다. var selectBoxObj = React.findDOMNode (this.refs.selectBox) var values = $ (selectBoxObj) .val () 다른 방법 : handleChange ({target}) {this.props.someCallback (Array.prototype.slice.call (target.selectedOptions) .map (o => o.value))} 실제로 selectedOptions 내부에서 찾을 수 있습니다. target ... 모든 옵션을 반복 할 필요가 없습니다.
컴포넌트에 props로 전달 된 onChange 함수에 값을 보내고 싶다고 가정 해 보겠습니다.
다중 선택의 onChange에서 다음 기능을 사용할 수 있습니다.
onSelectChange = (e) => {const values = [... e.target.selectedOptions] .map (opt => opt.value);
this.props.onChange (값);
};
이것을 시도하십시오 : dropdownChanged = (event) => {let obj = JSON.parse (event.target.value);
this.setState ({키 : obj.key, selectedName : obj.name, 유형 : obj.type});
} <select onChange = {this.dropdownChanged}> <option value = {JSON.stringify ({name : 'name', key : 'key', type : "ALL"})}> 모든 프로젝트 및 공백 </ option> </ select> 참고 URL : https://stackoverflow.com/questions/28624763/retrieving-value-from-select-with-multiple-option-in-react
{const 값 = [... e.target.selectedOptions] .map (opt => opt.value);
this.props.onChange (값);
};
이것을 시도하십시오 : dropdownChanged = (event) => {let obj = JSON.parse (event.target.value);
this.setState ({키 : obj.key, selectedName : obj.name, 유형 : obj.type});
} <select onChange = {this.dropdownChanged}> <option value = {JSON.stringify ({name : 'name', key : 'key', type : "ALL"})}> 모든 프로젝트 및 공백 </ option> </ select> 참고 URL : https://stackoverflow.com/questions/28624763/retrieving-value-from-select-with-multiple-option-in-react
{const 값 = [... e.target.selectedOptions] .map (opt => opt.value);
this.props.onChange (값);
};
이것을 시도하십시오 : dropdownChanged = (event) => {let obj = JSON.parse (event.target.value);
this.setState ({키 : obj.key, selectedName : obj.name, 유형 : obj.type});
} <select onChange = {this.dropdownChanged}> <option value = {JSON.stringify ({name : 'name', key : 'key', type : "ALL"})}> 모든 프로젝트 및 공백 </ option> </ select> 참고 URL : https://stackoverflow.com/questions/28624763/retrieving-value-from-select-with-multiple-option-in-react
값);
this.setState ({키 : obj.key, selectedName : obj.name, 유형 : obj.type});
} <select onChange = {this.dropdownChanged}> <option value = {JSON.stringify ({name : 'name', key : 'key', type : "ALL"})}> 모든 프로젝트 및 공백 </ option> </ select> 참고 URL : https://stackoverflow.com/questions/28624763/retrieving-value-from-select-with-multiple-option-in-react
값);
this.setState ({키 : obj.key, selectedName : obj.name, 유형 : obj.type});
} <select onChange = {this.dropdownChanged}> <option value = {JSON.stringify ({name : 'name', key : 'key', type : "ALL"})}> 모든 프로젝트 및 공백 </ option> </ select> 참고 URL : https://stackoverflow.com/questions/28624763/retrieving-value-from-select-with-multiple-option-in-react
반응형
공유하기
게시글 관리
itbloger
'
programing tip
' 카테고리의 다른 글
입력 유형 "숫자"는 크기가 조정되지 않습니다.
(0)
2020.11.24
Ansible을 사용한 SSH 에이전트 전달
(0)
2020.11.24
PDF 파일의 구조?
(0)
2020.11.24
파이썬을 말하는 방법
(0)
2020.11.24
생성자가 비어 있거나 생성자가 없음
(0)
2020.11.24
티스토리툴바