問題タブ [react.rb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - テスト間で react.js をリセットする
私は React.rb (react.js への opal-ruby バインディング) と Opal-rspec をテストに使用しています。
一部のテストでは、「未定義のプロパティ 'firstChild' を読み取れません」というエラーが発生するため、テスト間で反応の内部をリセットする必要があるようです。
「失敗した」テストを最初のテストに移動すると、エラーはなくなります (ただし、後のテストで発生する可能性があります)。
React.rb が 2 回読み込まれることはありません。react ソース ファイルの最初の行に console.log を配置するなど、いくつかの方法を確認しました。
SOOO テスト間の反応状態を完全にクリアする方法が必要なようです。それを行う方法はありますか?
jquery - opal-jquery を使用して opal でレンダリングする react.rb テンプレートを取得しようとしましたが、現在は機能していませんでした
これは私の以前の質問と似ていることは認めますが、まったく同じではありません。Document.ready?
最後に ajax リクエストを使用しているので、opal-jquery をスタックに追加することにし (より簡単な方法を知らない限り)、それによって提供される関数の使用に切り替えました。
私の関数は次のようになります。
そして私はそれを次のように呼びます:
問題は、これが機能する前は機能していましたが、現在は機能していないということです。Uncaught NoMethodError: undefined method '[]' for nil
エラーが発生しています。機能していたのに、突然これを実行し始めました。
エラーは、何らかの理由 Element.find[mount_point]
で返されているためで、理由がnil
わかりません。'#view_port'
マウントポイントが存在するように、dom がロードされた後に実行する必要があります。ここでわかるように、それは間違いなくdomに存在します:
私もそれを包んでみましwindow.addEventListener("load", function () {}
たが、効果がありませんでした。
なぜ今それが機能していないのですか?私は何を逃したのですか?
ruby - ajax を介して送信されるフォームのリクエストは、後続の送信ごとに乗算されます
私は ajax リクエストを行うフォームを持っています。問題は、フォームをクリックするたびに、そのリクエストの回数が倍増することです。
サブミット・インターセプトを設定した方法が原因だと確信していますが、それを単一のコンポーネントとしてカプセル化しながら、それを行う方法が他にわかりません。
ビュー レイヤーとして反応を使用しており、リクエストをインターセプトするコードを含む関数をアタッチしました。この関数は、afterMount
コールバックとafter_update
コールバックの両方で呼び出されます。これを行わないと、フォームの送信が傍受されないか、一度だけ傍受されてから通常の送信が行われます。
これらのイベントが発生し、追加の送信ハンドラーが追加されるため、明らかに増加しています。
私は opal と react.rb を使用しているため、コードが少し奇妙に見えるかもしれません。
フォームの送信アクションをインターセプトする関数は次のとおりです
ここに私のコールバックがあります:
コンポーネントの状態がすでにリクエストの途中であるかどうかを確認することで、リクエストの量を減らすことができましたが、追加される送信ハンドラーの量は減りませんが、かなりの量の処理が停止しますが、追加されるハンドラーの実際の乗算を停止しません。
ruby-on-rails - サーバー側の Ruby をレールの opal ファイルに埋め込む
サーバー側の Ruby を Opal .js.rb ファイルに埋め込むことは可能ですか? 言い換えればUser.find(1)
、.erb で行うように、Rails の一部の opal ファイルにアクセスする必要があります。
react.rb - react.rb を使用して defaultValue を設定できません
私のコードは
input(type: "text", name: "name", defalut_value: obj.name)
、私もこれを試します
input(type: "text", name: "name", defalutValue: obj.name)
私はいつも
<input type="text" name="name" data-reactid=".0.1.1.1.1">
「defalutValue」なしで取得しました