これは、通常のDOM要素とjQuery要素の両方を対象としています。実際の要素をクラス内のどこかに保存したい。これを行うための共通のパターンへの参照はありますか?- 私はReactで使用するDOM要素を保存しないので保存しますか?
また、私はReactでjQueryを使用すべきではないが、私のメニューを動作させるためにはjQuery関数が必要であり、リファクタリングに時間がないことはうまくいくことを知っている。
import React from 'react';
import $ from 'jquery';
class MobileMenu extends React.Component {
constructor (props) {
super(props);
this.clickHandler1 = this.clickHandler1.bind(this);
this.clickHandler2 = this.clickHandler2.bind(this);
this.clickHandler3 = this.clickHandler3.bind(this);
}
clickHandler1() {
this.toggleMenu();
}
clickHandler2() {
// MenuPage.flip('fave');
this.toggleMenu();
this.toggleMarker($A.el('#nav_fave'));
}
clickHandler3() {
// MenuPage.flip('splash');
this.toggleMenu();
this.toggleMarker($A.el('#nav_splash'));
}
toggleMarker (current_item) {
if ((this.previous_item !== undefined) && (this.previous_item !== current_item)) {
this.previous_item.style.borderBottom = '';
}
if (this.previous_item !== current_item) {
current_item.style.borderBottom = '3px solid #31baed';
}
this.previous_item = current_item;
}
toggleMenu() {
if (window.getComputedStyle($A.el('#top_menu_list'), null).display === 'block') {
$('#icon_bars').toggleClass('active');
$('#top_menu').slideToggle();
}
}
// ... snip
}
export default MobileMenu
"クラス内のどこかに格納される実際の要素"とはどういう意味ですか? 「引き上げる」とはどういう意味ですか? – jmargolisvt
これをしたら... 'let store = $( '#icon_bars')'私はその結果をどこかに保存したい。 'this.store = store'のようにこれを置くことができましたが、開発者が共通のパターン/アプローチ/イディオムが使用されているかどうか疑問に思っていましたか? –
これは一般的なパターンではありません。これは反応する反パターンです –