[Material UI] Select Field의 각 MenuItem에 사용자 지정 데이터 속성을 설정하는 방법

1526 단어 Reactmaterial-ui
틈새이지만 ...
이른바 data-* 를 설정하고 싶을 때의 방법입니다.

dataSet 설정



html로 설정하는 것처럼 세트.
  render() {
    return (
      <div>
        <SelectField
          floatingLabelText="Frequency"
          value={this.state.value}
          onChange={this.handleChange}
        >
          <MenuItem value={1} primaryText="Never" data-v={example} />
          <MenuItem value={2} primaryText="Every Night" data-v={example} />
          <MenuItem value={3} primaryText="Weeknights" data-v={example} />
          <MenuItem value={4} primaryText="Weekends" data-v={example} />
          <MenuItem value={5} primaryText="Weekly" data-v={example} />
        </SelectField>
      </div>
    );
  }

dataSet 얻기



취득은 event 로부터 부모 요소를 추적해 가게 된다.
  handleChange(event, index, value) {
    const dataSet = event.target.parentElement.parentElement.parentElement.dataset.id != undefined ? event.target.parentElement.parentElement.parentElement.dataset : event.target.parentElement.parentElement.dataset;

    console.log(dataSet.v)
  }

event 로부터 dataSet 를 취득할 때의 주의점



option 부분에는 이와 같이 padding 가 설정되어 있어 padding 부분을 클릭되면 event 로 건네받는 요소가 1 위의 요소에 어긋난다.

좋은 웹페이지 즐겨찾기