반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 컴퓨터과학
- 2
- 컴퓨터공학
- 딥러닝
- 프로그래밍언어
- 자료구조
- 데이터분석
- 코딩
- 데이터구조
- 웹개발
- 데이터과학
- 데이터베이스
- 네트워크보안
- 소프트웨어
- 클라우드컴퓨팅
- 프로그래밍
- 알고리즘
- 자바스크립트
- I'm Sorry
- 빅데이터
- 인공지능
- 파이썬
- 보안
- 사이버보안
- 버전관리
- 네트워크
- Yes
- 소프트웨어공학
- 머신러닝
- 컴퓨터비전
Archives
- Today
- Total
스택큐힙리스트
리액트 JSX: 선택된 <select> 옵션에 "selected" 선택 본문
반응형
리액트 컴포넌트에서 <select>
메뉴에 selected
속성을 설정해야 합니다. 이 속성은 애플리케이션 상태를 반영하는 옵션에 적용되어야 합니다.
render()
함수 내에서 optionState
는 상태 소유자로부터 SortMenu 컴포넌트로 전달됩니다. 옵션 값들은 JSON을 통해 props
로 전달됩니다.
render: function() {
var options = [],
optionState = this.props.optionState;
this.props.options.forEach(function(option) {
var selected = (optionState === option.value) ? ' selected' : '';
options.push(
<option value={option.value}{selected}>{option.label}</option>
);
});
// {options}을 select 메뉴 jsx에 전달
그러나 이렇게 하면 JSX 컴파일 시 문법 오류가 발생합니다.
이렇게 하면 문법 오류는 사라지지만 문제를 해결하지는 못합니다:
이렇게도 시도해 봤습니다:
var selected = (optionState === option.value) ? true : false;
<option value={option.value} {selected ? 'selected' : ''}>{option.label}</option>
문제를 해결하는 권장 방법이 있을까요?
답변 1
리액트는 이 작업을 더 쉽게 만들어줍니다. 각 옵션에 selected
을 정의하는 대신, 선택한 옵션은 value={optionsState}
을 select 태그 자체에 간단히 작성할 수 있습니다:
<select value={optionsState}>
<option value=A>사과</option>
<option value=B>바나나</option>
<option value=C>크랜베리</option>
</select>
더 많은 정보는 리액트 선택 태그 문서를 참조하세요.
또한, 리액트는 이 목적으로 부울 값을 자동으로 이해하기 때문에, 간단히 (참고: 권장하지 않음)
<option value={option.value} selected={optionsState == option.value}>{option.label}</option>
를 작성하면 'selected'를 적절히 출력합니다.
답변 2
React JSX: selected 속성을 사용하여 선택된반응형
Comments