[解決済み] ReactJS コンポーネントの子要素に id 属性を適用するには?
2022-02-16 14:36:24
質問
ドロップダウンのコンポーネントがあります。
import React from 'react';
import { PropTypes } from 'prop-types';
export default class Dropdown extends React.Component {
constructor(props) {
super(props);
this.state = {
value: this.props.selectedDropdownValue,
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
this.setState({
value: e.target.value,
});
this.props.onChange(e.target.value);
}
render() {
let disabled = false;
let dropdownOptions = null;
const { options } = this.props;
// Disable dropdown is the disabled attribute is added
if (options) {
dropdownOptions = this.props.options.map((option) =>
<option value={option.key} key={option.key} >{option.display}</option>,
);
} else {
// Setting default options
const defaultOptions = [
{ key: '', display: 'Please configure defaultOptions' },
];
disabled = true;
dropdownOptions = defaultOptions.map((option) =>
<option value={option.key} key={option.key} >{option.display}</option>,
);
}
return (
<select
value={this.state.value}
onChange={this.handleChange}
disabled={disabled}
>
{ dropdownOptions }
</select>
);
}
}
Dropdown.propTypes = {
options: PropTypes.arrayOf(PropTypes.object),
onChange: PropTypes.func,
selectedDropdownValue: PropTypes.string,
};
Dropdown.defaultProps = {
options: undefined,
onChange: this.handleChange,
selectedDropdownValue: '',
};
そして以下は、ビューでドロップダウンをレンダリングする方法です。
import React from 'react';
import { PropTypes } from 'prop-types';
import Dropdown from 'components/Dropdown';
class Anish extends React.Component {
render() {
return (
<div>
<div>
Value Selected: {this.props.selectedDropdownValue}
</div>
<label htmlFor={'dropdownId1'}>Sort by: </label>
<Dropdown
id="dropdownId1"
options={[
{ key: '', display: 'Please select a value' },
{ key: 'NJ', display: 'New Jersey' },
{ key: 'NY', display: 'New York' },
]}
onChange={this.props.onSetDropdownValue}
/>
</div>
);
}
}
Anish.propTypes = {
selectedDropdownValue: PropTypes.string,
onSetDropdownValue: PropTypes.func.isRequired,
};
Anish.defaultProps = {
selectedDropdownValue: '',
};
export default Anish;
以下は、ドロップダウンとラベルがブラウザでどのようにレンダリングされるかを示しています。
では、どのようにすれば
<Dropdown />
を
<select>
その中は?
どんなことでもご相談ください。
解決方法は?
props
のIDが含まれます。
Dropdown
コンポーネントを使用しますが、React コンポーネント内では
this.props
.
return (
<select
id={this.props.id}
value={this.state.value}
onChange={this.handleChange}
disabled={disabled}
>
{dropdownOptions}
</select>
)
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] 指定された要素にクラスを追加するには?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] スクロールした後に要素が表示されているかどうかを確認するには?
-
[解決済み] ReactJSでコンポーネントがtext型の非制御入力を制御エラーに変更する場合
-
[解決済み] ReactJS Componentに複数のクラスを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み】Vueが定義されていない