[解決済み] ReactJSの動的属性
2022-09-15 08:34:54
質問
ボタン要素の disabled 属性を動的にインクルード/オミットしたいです。動的な属性値の例はたくさん見ましたが、属性そのものは見ませんでした。私は次のレンダー関数を持っています。
render: function() {
var maybeDisabled = AppStore.cartIsEmpty() ? "disabled" : "";
return <button {maybeDisabled}>Clear cart</button>
}
これは、"{"文字のため、パースエラーを投げます。AppStore.cartIsEmpty()の(boolean)結果に基づいてdisabled属性を含む/省略するにはどうすればよいですか?
どのように解決するのですか?
オプションの属性を追加する最もクリーンな方法 (
disabled
など) を追加する最もきれいな方法は、現在のところ
JSX拡散属性
:
var Hello = React.createClass({
render: function() {
var opts = {};
if (this.props.disabled) {
opts['disabled'] = 'disabled';
}
return <button {...opts}>Hello {this.props.name}</button>;
}
});
React.render((<div><Hello name="Disabled" disabled='true' />
<Hello name="Enabled" />
</div>)
, document.getElementById('container'));
spread属性を使用すると、javascriptオブジェクトのインスタンスを使用して、好きな属性を動的に追加(またはオーバーライド)することができます。上の例では、コードによって
disabled
キー (
disabled
の値) を指定すると
disabled
プロパティに渡されます。
Hello
コンポーネントのインスタンスに渡されます。
のみを使用したい場合は
disabled
を使いますが。
この
の答えはうまくいく。
関連
-
[解決済み】Typescript react - モジュール ''react-materialize'' の宣言ファイルが見つかりませんでした。'path/to/module-name.js' は暗黙のうちに any 型を持ちます。
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] FontAwesomeの無料パッケージに含まれているアイコンのオブジェクト名はどこにあるのですか?
-
[解決済み] React + TypeScript のエラーです。この呼び出しにマッチするオーバーロードがありません
-
[解決済み] componentDidUpdate'メソッドはいつ使用するのですか?
-
[解決済み] ReactJSでコンポーネントがtext型の非制御入力を制御エラーに変更する場合
-
[解決済み] ReactJS Componentに複数のクラスを追加する方法は?
-
[解決済み] ReactJS - .JSと.JSXの比較
-
[解決済み】ReactJS - "setState "が呼ばれるたびにrenderが呼び出されるのですか?
-
[解決済み】ReactJS 2つのコンポーネントが通信しています。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] リアクトです。<tr>は<td>の子として表示できません。コメント > td > tr を参照してください。
-
[解決済み] react nativeで関数だらけのヘルパーファイルを作成する方法は?
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] カスタマイズ素材UI チェックした場合としない場合の切り替え
-
[解決済み] nextjsで異なる.envファイルを使用するには?
-
[解決済み] React QueryとReduxの主な違いは何ですか?
-
[解決済み] 入力が空のとき、ボタンを無効にするには?